我最近用最新的 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/