javascript - Jquery 升级 - 1.8 到 2.1.4,$(window) click 与 $(document) click

标签 javascript jquery

我最近用最新的 jquery 版本更新了我的项目。

对于 jquery 1.8,以下语句有效:

$(window).on('click', 'button[data-mynav]', function() {
 console.log('hit');
}
);

但它停止与 jquery 2.1.4 一起工作,但如果我使用 $(document) 而不是 $(window) 它可以工作,即:

$(document).on('click', 'button[data-mynav]', function() {
 console.log('hit');
}
);

谁能解释一下,为什么会这样?

最佳答案

它已经在 1.8.1 上停止工作了

<button a>works</button>
<button b>fails</button>

<!-- working -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js"></script>
<script>

  $(window).on('click', 'button[a]', function() {
    this.innerHTML = 'hit';
  });
  
  jQuery.noConflict(true);
  
</script>

<!-- not working -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.1/jquery.min.js"></script>
<script>

  $(window).on('click', 'button[b]', function() {
    this.innerHTML = 'hit';
  });
  
</script>

这是changelog在 1.8.0 和 1.8.1 之间

我的猜测是错误 #12383 git: afd717d

我不知道为什么它停止工作,因为他们没有提到任何重大更改

关于javascript - Jquery 升级 - 1.8 到 2.1.4,$(window) click 与 $(document) click,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33963996/

相关文章:

javascript - 停止一个函数并启动另一个函数

javascript - onclick 不应触发表单数据提交

javascript - 如何避免多个 html 文件中的重复信息?

javascript - 如何从服务器获取字符串值并将每个字符拆分并插入到html中的输入文本框中

javascript - jqwidgets treegrid setcellvalue 函数在更改事件的编辑器上不起作用

javascript - 如何从单击处理程序中的对象数组访问对象属性?

javascript - 如何仅在文档完成加载后加载 jQuery 函数

javascript - 使用 jQuery 根据搜索关键字过滤表数据

多个元素的jQuery相同的点击事件

javascript - Twitter Bootstrap 的工具提示问题