我在Firefox 4.0.1中看到问题,其中事件传播似乎没有像我期望的那样工作。假设我有以下HTML:
<button>
<input id='cb' type='checkbox' checked='true'>
<span> foo</span>
</button>
和javascript:
$(document).ready(function() {
$("button").click(function(e) {
console.log('got click: button');
return true;
});
$("#cb").click(function(e) {
console.log('got click: checkbox');
return true;
});
});
请参阅:http://jsfiddle.net/H7fp3/10/
这与我在Chrome(12)和Safari(5.0.5)中所期望的一样:
got click: checkbox
,然后got click: button
got click: button
但是,在Firefox(4.0.1)中,两者都生成got click: button
,并且不会更改复选框已检查属性。我在这里错过了什么吗? Firefox是否正确传播按钮点击事件?
答案 0 :(得分:2)
我认为Firefox实际上就在这里。根据{{3}},<input>
内不允许<button>
。
此外,checked="true"
应为checked="checked"
,这可能也会导致问题(或可能导致其他情况下出现问题)。