我动态插入一些用作按钮的图像并添加onClick事件。
$("img.image_edit_customer").live("click", function() {
// when clicking the edit image of a row
$(this).manipulateCustomer("editRowCustomer", {
scope : "#customer_tbody"
});
});
稍后我想从用作按钮的图像中删除onClick事件。
$('img[class^="image_edit"]').live('click', function() {
// do nothing from now on
alert('edit');
});
现在,它始终执行旧的和新处理程序。
更新
如果我正在使用die('click');
,我仍然可以执行一次onCLick事件。
答案 0 :(得分:2)
由于您使用live方法附加事件,因此需要使用die方法
答案 1 :(得分:1)
对于jQuery 1.7 +
附加仅运行一次然后自行删除的事件:
$(document).one("click", "img.image_edit_customer", function() {
$(this).manipulateCustomer("editRowCustomer", {
scope : "#customer_tbody"
});
});
附加可在以后删除的事件:
$(document).on("click", "img.image_edit_customer", editRow);
删除活动:
$(document).off("click", "img.image_edit_customer", editRow);
附加和删除功能
function editRow(e) {
$(e.target).manipulateCustomer("editRowCustomer", {
scope : "#customer_tbody"
});
}
答案 2 :(得分:0)
答案 3 :(得分:0)
不是为所有匹配元素解除绑定或杀死(也就是死亡)事件,而是使用'marker'类标记各个元素,如下所示:
$("img.image_edit_customer").live("click", function() {
if(!$(this).hasClass('clicked')) {
$(this).addClass('clicked');
$(this).manipulateCustomer("editRowCustomer", {
scope : "#customer_tbody"
});
}
});