但实际上我在调试器中看到,只有一个调用发生,并且只有第一个条件满足以下条件:
正确,change
仅在收到支票的输入上触发,而不是(可能)丢失支票的其他输入。细节隐藏在规范的这一部分,但我相信这是关键点:
如果元素是可变的,则: 点击前激活步骤包括将元素的选中状态设置为 true。取消的激活步骤包括将元素的选中状态设置为 false。激活行为是触发一个以元素命名的简单事件。change
(我的重点,非常感谢Barmar的帮助!)
这是一个示例:Live Copy
<!DOCTYPE html>
<html>
<head>
<meta charset=utf-8 />
<title>Radio Behavior</title>
<style>
label {
display: block;
}
</style>
</head>
<body>
<p>(Look in the console for the output as you click...</p>
<hr>
<label><input type="radio" name="group1" id="g1-1"> Group 1 one</label>
<label><input type="radio" name="group1" id="g1-2"> Group 1 two</label>
<label><input type="radio" name="group1" id="g1-3"> Group 1 three</label>
<hr>
<label><input type="radio" name="group2" id="g2-1"> Group 2 one</label>
<label><input type="radio" name="group2" id="g2-2"> Group 2 two</label>
<label><input type="radio" name="group2" id="g2-3"> Group 2 three</label>
</body>
<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<script>
(function($) {
$("input[type=radio][name=group1]").change(function() {
console.log("group 1 changed to: " + this.id);
});
$("input[type=radio][name=group2]").change(function() {
console.log("group 2 changed to: " + this.id);
});
})(jQuery);
</script>
</html>