Jquery 触发“;点击";复选框或单选按钮上的事件切换;勾选“;事件处理程序函数完成后的属性
奇怪的jquery行为单击radioButton和复选框上的事件 当用户单击单选按钮时,属性检查将首先切换,然后运行事件处理程序 当代码触发这些元素上的click事件时,首先事件处理程序正在运行,然后check属性正在更改 示例如下:Jquery 触发“;点击";复选框或单选按钮上的事件切换;勾选“;事件处理程序函数完成后的属性,jquery,events,checkbox,radio-button,Jquery,Events,Checkbox,Radio Button,奇怪的jquery行为单击radioButton和复选框上的事件 当用户单击单选按钮时,属性检查将首先切换,然后运行事件处理程序 当代码触发这些元素上的click事件时,首先事件处理程序正在运行,然后check属性正在更改 示例如下: 触发点击事件 $(函数(){ $(“#测试单击”)。单击(函数(){ $(“#测试复选框2”)。单击(); }); $(文档)。在(“单击“,”[name$=“test”]”上,函数(){ 打印(); }); var print=function(){ 警报(
触发点击事件
$(函数(){
$(“#测试单击”)。单击(函数(){
$(“#测试复选框2”)。单击();
});
$(文档)。在(“单击“,”[name$=“test”]”上,函数(){
打印();
});
var print=function(){
警报($('input[name$=“test”]:checked').attr(“id”);
};
});
如何避免此问题并在属性检查为toggle后触发单击?单击其他元素时切换单选框应尽可能简单
$(“#测试点击”)。在('click',function()上{
$('[name$=“test”]:未(:选中)).prop('checked',true);
});代码>
单击以切换收音机
一个简单的功能:
function checkNextRadioInGroup (group) {
var group = ":radio[name='" + group + "']";
var current = $(group + ":checked").index();
var all = $(group).length - 1;
if (current == all) {
$(group + ":first").trigger("click");
}
else {
$(group + ":checked").next().trigger("click");
}
};
然后,您可以在单击事件中调用它,如下所示:
$("#test-click").on("click", function(){
checkNextRadioInGroup ("test");
});
这只是一个例子
希望有帮助。这真的让人困惑吗?首先,正确的事件应该是更改
,而不是单击
,其次,如果你只想在单击其他内容时切换它们,有更简单的方法吗?一个解决方案你可以将其发布为答案,如果没有其他人会建议更好的答案,我会接受它。好吧,这就是你试图做的吗,只需切换单选按钮?这有点复杂,因为有两个以上的单选按钮。但是我知道单击单选按钮的Id,所以我可以先检查它,然后运行事件。我发现这篇关于这个主题的文章的方式与你的建议相似:
$("#test-click").on("click", function(){
checkNextRadioInGroup ("test");
});