Моя проблема заключается в том, что когда Я поместил функцию keydown вне функции newItem(), функция CrossOutButton(), CSS-забастовки и sortable() не работают, потому что теперь они находятся за пределами области действия. . Я предполагаю, что есть решение, где все это можно разместить внутри функции newItem(), но я застрял.
Код: Выделить всё
function newItem() {
//Adds new item to the list
let li = $('[*]');
let inputValue = $('#input').val();
li.append(inputValue);
if (inputValue === '') {
alert('You must write something');
} else {
$('#list').append(li);
//clears input field after selecting 'Add' button
$('#input').val('');
}
//Crossing out an item from the list of items
function crossOut() {
li.toggleClass('strike');
}
li.on('dblclick', function crossOut() {
li.toggleClass('strike');
});
//Adding the delete button 'X'
let crossOutButton = $('');
crossOutButton.append(document.createTextNode('X'));
li.append(crossOutButton);
crossOutButton.on('click', deleteListItem);
//Adding class delete (display: none) from css
function deleteListItem() {
li.addClass('delete');
}
//reordering the items
$('#list').sortable();
}
//keydown function to listen for enter key
$(document).ready(function() {
$('#input').keydown(function(e) {
//initialized variable and set as undefined
let inputValue;
if (inputValue === '') {
alert("You must enter something");
} else {
//Enter key holds the value of 13
if (e.keyCode === 13) {
let li = `[*]${$(this).val()}`;
$('#list').append(li);
console.log('Form submitted');
e.preventDefault();
//clears input field after hitting enter
$('#input').val('');
}
}
})
});Код: Выделить всё
Add
[list][/list]Подробнее здесь: https://stackoverflow.com/questions/783 ... t-work-pro
Мобильная версия