删除子项的事件处理程序

时间:2010-07-29 14:09:44

标签: jquery events event-handling unbind

我正在尝试解除所有a-tags中的事件处理程序(click),并以某种方式无效。你们知道为什么吗?

// Remove eventhandlers
    row.find('a').each(function(){
        $(this).unbind('click');
        alert($(this).attr("onClick"));
    });

它将始终输出当前的onClick函数。

由于

2 个答案:

答案 0 :(得分:4)

jQuery的.unbind()仅删除由jQuery分配和维护的处理程序。您的内联处理程序不受影响。

如果要删除内联属性,请使用removeAttr()

row.find('a').each(function(){
    $(this).removeAttr('onClick');
    alert($(this).attr("onClick"));
});

http://api.jquery.com/removeattr/

答案 1 :(得分:0)

$('a').unbind('click');

$('a').each(function() {
  return false;
});