我希望能够点击列表项,然后点击退格键将其删除。我如何用jQuery做到这一点?
$('<li>Click Me</li>')
.appendTo('#list')
.click(function(){
$(this).addClass('delete');
$(this).focus(); // doesn't seem to do anything maybe??
})
.keypress(function(e){
// this event handler doesn't fire
var key = (e.keyCode ? e.keyCode : e.which);
if (key === 8) {
if ($(this).hasClass('delete'))
$(this).remove();
}
});
这是我的jsfiddle:
看起来我无法将按键事件附加到列表项。
答案 0 :(得分:3)
您无法在列表元素上使用焦点。你什么都没得到:) 尝试使用另一种解决方案,使用“delete”类为文档按键和进程列表创建单独的处理程序:
$(document).keypress(function(e){
var key = (e.keyCode ? e.keyCode : e.which);
if (key === 8) {
$('li.delete').remove();
}
});
答案 1 :(得分:1)
您需要尝试在文档级别使用密钥处理程序。此外,使用'keydown'而不是'keypress'更安全。工作示例:http://jsfiddle.net/DwX4e/
$('<li>Click Me</li>')
.appendTo('#list')
.click(function(){
$(this).addClass('delete');
$(this).focus();
})
$(document).on('keydown', function(e){
if(e.keyCode === 8){
$('li.delete').remove();
}
});