看來,在IE中,一些委託可能以某種方式導致另一個委託失敗。jQuery的委託與IE中的另一個委託發生衝突
這是一種可能的情況:
<html>
<head>
<script src='jquery-1.4.2.min.js'></script>
<script>
$(function() {
$('#main')
.delegate('div', 'click', function() {
alert('on div!');
})
.delegate('[name=first]', 'change', function() {
alert('first!');
})
.delegate('[name=second]', 'change', function() {
alert('second!');
})
;
});
</script>
</head>
<body>
<div id="main">
<input name="first" />
<input name="second" type="checkbox" />
<div>Test</div>
</div>
</body>
</html>
在這種特定情況下,該複選框處理程序將不會觸發。
像往常一樣,問題不會顯示在其他瀏覽器。
更改通話單可能會解決問題,但有可能導致另一個問題。請注意,委託工作在互斥元素上,所以順序應該是不相關的。
這是什麼原因造成的?