我有这个问题只发生在 IE8 中。它适用于所有最新的浏览器 IE10、Chrome 30、FireFox 24
这是问题:我在选择器上设置了一个点击事件,但它也在其他元素上触发
这是脚本:
$('#side-nav .nav-node-branch > a').click(function (eevent) {
var el = $(eevent.target);
if (el.is('#side-nav .nav-node-branch > a'))
// all is well
else
// sometimes arrives here, HOW???
}
这是简化的 HTML 结构:
<html><body>
<nav id="side-nav">
//
<ul>
<li class="nav-node-branch"><a href="http://google.com">link</a></li>
</ul>
</nav>
<div class="content-area">
<form data-bind="submit: submitSearch" class="indented" novalidate="novalidate">
<fieldset>
<legend>Bestellung für</legend>
<ul>
<li>
<span>
<input checked="checked" data-bind="checked: IsEmployeeSelf" data-val="true" data-val-required="The IsEmployeeSelf field is required." id="IsEmployeeSelfYes" name="IsEmployeeSelf" type="radio" value="true">
<label for="IsEmployeeSelfYes">Eigene Person</label>
<input data-bind="checked: IsEmployeeSelf" id="IsEmployeeSelfNo" name="IsEmployeeSelf" type="radio" value="false">
<label for="IsEmployeeSelfNo">Andere Person</label>
</span>
</li>
</ul>
</fieldset>
</form>
</div>
</body></html>
单击表单内的任何内容时都会触发上面的处理程序。甚至是传说或只是形式中的背景。即使它应该只触发 NAV 中的元素。导航没有重叠或任何东西。
顺便说一句:我正在调用 document.createElement('nav'); 早些时候
关闭 Knockout 似乎可以解决问题....但整个事情都是围绕淘汰赛构建的。所以这不是一个真正的选择。根据http://knockoutjs.com/documentation/browser-support.html应该支持它。(淘汰赛3也有同样的问题)
这是我正在使用的库的列表:
- es5-垫片
- 全球化
- jQuery-1.10.2
- jquery-ui-1.10.3
- jquery.json 日期解析器
- jQuery.mCustomScrollbar
- jQuery.mousewheel
- jquery.unobtrusive-ajax
- jquery.validate.hook
- jquery.validate
- jquery.validate.unobtrusive
- 淘汰赛-2.3.0
- 现代主义-2.6.2
- mvcfoolproof.unobtrusive
- 要求
- ss(脚本锐化)