jquery关闭不工作

时间:2016-12-10 08:30:41

标签: javascript jquery

我无法取消绑定事件。

我试图绑定click事件,然后绑定mouseleave事件并回调取消绑定click,但不能正常工作。
el是dom创建并通过脚本附加,这就是我使用document.on... el

的原因

所以我在下面尝试了包含注释代码的测试不能正常工作....我想念一些吗?

的jquery-1.11.1.min.js

https://jsfiddle.net/70t6jtns/

var el = $('div')
$(document).on('click', el, function() {
  console.log('oncli')
});
//$(document).on('mouseleave', el, function() {
  //$(document).off('click', el, function() {
    //console.log('offcli')
  //});
  //$(document).off('click', el);
  el.off('click');
//});

2 个答案:

答案 0 :(得分:5)

首先,on不接受jQuery对象作为第二个参数,因此$(document).on('click', el, function() {...没有意义。

主要问题是你在一个案例中使用了事件委托,但在另一个案例中期望直接附加处理程序。您将click处理程序附加到document,然后尝试从特定元素(el分离。你必须将它从你附加它的同一个东西中删除。

如果要将处理程序附加到el并稍后将其分离,请始终使用el作为目标:

el.on("click", function() { ...

然后

el.off("click");

如果必须委托处理程序,那么您将再次确定要删除正在添加的内容。例如,

$(document).on("click", "selector-for-the-element", function() { ...

然后

$(document).off("click", "selector-for-the-element");

答案 1 :(得分:0)

我面临着同样的问题。因为我在文档上添加了on侦听器并尝试使用element。这就是我的问题。