我将.blur()
事件绑定到一个元素。每当我使用$(elem).remove()
方法删除元素时,都会针对同一元素触发.blur
事件。
这是jsFiddle - 要查看案例,请单击蓝色div并按任意键。
这是代码: HTML:
<div id="container"></div>
<ul id="tr"></ul>
CSS:
#container {
width:100px;
height:100px;
background:blue;
position:relative;
cursor:pointer;
} JS:
$("#tr").on('keydown', '#ti', function() {
$(this).remove();
});
$("#tr").on('blur', '#ti', function() {
alert('blur is triggered');
});
$('#container').on('click', function() {
var item = '<li id="ti" contenteditable="true"></li>';
$("#tr").append(item);
$("#ti").last().focus();
});
如果删除元素,如何阻止.blur事件?或者我怎么知道事件被触发了我的元素删除?
答案 0 :(得分:4)
答案 1 :(得分:2)
在删除项目之前删除模糊事件
$("#tr").on('keydown', '#ti', function() {
$(this).off('blur');
$(this).remove();
});