我有這個問題只發生在IE8中。它可以在所有最新的瀏覽器IE10,Chrome的30精,火狐24jQuery觸發IE8中錯誤元素的點擊事件
這裏的問題是: 我在選擇建立一個click事件,但它發射的其他元素,也
這是腳本:
$('#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>
處理機點擊FO內部的任何以上時被觸發R M。即使是傳說或只是形式背景。 儘管它只應觸發NAV中的元素。導航不重疊或任何東西。
順便說一句:我打電話給document.createElement('nav');更早
關閉淘汰賽似乎解決了這個問題.... 但整個事情是建立在淘汰賽周圍。所以這不是一個真正的選擇。 並根據http://knockoutjs.com/documentation/browser-support.html它應該被支持。 (淘汰賽3具有相同的問題)
這裏是庫的列表,我使用:
- ES5-墊片
- 全球化
- jQuery的1.10.2
- jquery- UI-1.10.3
- jquery.json最新解析器
- jQuery.mCustomScrollbar
- jQuery.mous ewheel
- jquery.unobtrusive-AJAX
- jquery.validate.hook
- jquery.validate
- jquery.validate.unobtrusive
- 敲除2.3.0
- Modernizr的-2.6.2
- mvcfoolproof.unobtrusive
- 要求
- ss(scriptsharp)
導航標記可能無法通過IE8正確處理,您可以嘗試替換它,例如由div – paulitto
難以重現錯誤,因爲jsFiddle不喜歡IE8。 – melancia
我試圖重現它在這裏:http://jsbin.com/oboVATu/1,但它工作正常。這隻包括es5-shim,jquery,jquery-ui和淘汰賽。所以可能它是Knockout和另一個庫之間的一些交互。 –