【发布时间】:2014-11-17 19:05:41
【问题描述】:
我们刚刚偶然发现了两个 jQuery 版本之间的不兼容问题,这破坏了我们的一个应用程序。从 1.7 更新到最新的 2.1 版本时出现问题,但缩小到 1.8.0 和 1.8.1 之间的差异。
我已经构建了一个小提琴here (1.8.0, working) 和here (1.8.1, broken)。
HTML
<div class="outer">
<div class="eventcontext">
<a href="#targetNope" class="hasevent">Click me!</a>
</div>
</div>
JS
$('.eventcontext').on('click', '.outer a.hasevent', function(e) {
e.preventDefault();
e.stopPropagation();
$('#targetYep').show();
});
在 1.8.0 中使用与所需元素匹配的选择器,选择器的一部分在事件上下文“上方”可以正常工作,与原生 querySelector 的方式相同,而在 1.8.1 中则可以不是。
这是有意的改变,还是我们可以期望它在某个时候得到“修复”?我想知道这是否可能是一个错误,因为它发生在补丁版本更新中,会破坏一些东西(至少在我们的情况下),但在最新版本中仍然相同。
【问题讨论】:
标签: javascript jquery sizzle