【发布时间】:2015-07-01 01:35:17
【问题描述】:
在单选按钮和复选框上的 jquery 单击事件上的奇怪行为
当用户单击单选按钮时,首先切换属性检查,然后运行事件处理程序。
当代码在这些元素上触发点击事件时,首先运行事件处理程序,然后检查属性发生变化。
这里的例子: https://jsfiddle.net/j2bs01ez/3/
<body >
<input type="radio" id="test-checkbox" name="test" checked="true"/>
<input type="radio" id="test-checkbox2" name="test"/>
<span id="test-click">trigger click event</span>
</body>
$(function(){
$("#test-click").click(function(){
$("#test-checkbox2").click();
});
$(document).on("click",'[name$="test"]',function () {
print();
});
var print=function(){
alert( $('input[name$="test"]:checked').attr("id"));
};
});
如何避免这个问题并在属性检查切换后触发点击?
【问题讨论】:
-
这真的很混乱吗?首先,正确的事件应该是
change,而不是click,其次,如果你只是想在点击其他东西时切换它们,还有更简单的方法吗? -
您可以将其作为答案发布,如果没有其他人会提出更好的答案,我会接受它
-
嗯,这就是你想要做的,只需切换单选按钮?
-
稍微复杂一点,因为单选按钮不止2个。但是我知道点击单选的Id,所以我可以先检查一下,然后运行事件。它类似于你的建议
标签: jquery events checkbox radio-button