この問題は 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'); を呼び出しています。ついさっき
ノックアウトをオフにすると、問題が解決するようです....しかし、すべてはノックアウトを中心に構築されています。したがって、それは実際にはオプションではありません。http://knockoutjs.com/documentation/browser-support.htmlによると、サポートされているはずです。(ノックアウト 3 にも同じ問題があります)
私が使用しているライブラリのリストは次のとおりです。
- es5-シム
- グローバル化する
- jquery-1.10.2
- jquery-ui-1.10.3
- jquery.json-date-parser
- jQuery.mCustomScrollbar
- jQuery.マウスホイール
- jquery.unobtrusive-ajax
- jquery.validate.hook
- jquery.validate
- jquery.validate.控えめな
- ノックアウト-2.3.0
- modernizr-2.6.2
- mvcfoolproof.unobtrusive
- 必要とする
- ss (スクリプトシャープ)