即使在更改元素ID之后,通过其ID映射到元素的jQuery函数也可以工作

时间:2014-05-22 08:12:17

标签: javascript jquery

我试图阻止jQuery函数在特定状态下被调用。

$('#first-page').click(function(event) {
      // some code
      $(event.target).attr("id","no-id");
      // more code
}

为此,我重新命名了元素 id ,如上所示。但无论如何,这个功能仍然被调用。这不应该停止吗?

2 个答案:

答案 0 :(得分:0)

  

这不应该停止吗?

不,因为处理程序直接绑定到元素。选择器仅用于最初查找元素。事件发生时不会使用它,因此更改元素的ID不会对处理程序产生任何影响。

简单undbind the event handler

$('#first-page').click(function handler(event) {
      // some code
      $(this).off(handler);
      // more code
});

答案 1 :(得分:0)

jQuery将事件侦听器绑定到表示元素的DOM对象,该对象最初由提供的选择器标识。

因此,要删除onclick事件,您应该尝试类似:

$('#first-page').unbind('click');