我想创建一个列表,用户可以通过单击按钮在其中添加元素,通过单击元素更改其颜色并通过长按元素删除它们。
我的代码适用于添加 div 和更改它们的颜色:
$(document).ready(function(){
$('button').click(function(){
var toAdd = $('input[name=shop-item]').val();
if (toAdd == ''){
return false;
}
else {
$('#list').append('<div class="item item-red">' + toAdd + '</div>');
});
$(document).on('click', '.item', function(){
$(this).toggleClass('item-red');
$(this).toggleClass('item-green');
});
但后来我希望能够通过长按删除单个 div。我发现了一些如下示例:
var timeoutId = 0;
$(document).on('mousedown', '.item', function(){
timeoutId = setTimeout(function(){ $(this).remove() }, 500);
}).bind('mouseup mouseleave', function() {
clearTimeout(timeoutId);
});
但是,它不适用于“ this
”。但是如果我改用 ' .item
',显然所有附加的项目都被删除了。