Jquery 触发“;点击";复选框或单选按钮上的事件切换;勾选“;事件处理程序函数完成后的属性

Jquery 触发“;点击";复选框或单选按钮上的事件切换;勾选“;事件处理程序函数完成后的属性,jquery,events,checkbox,radio-button,Jquery,Events,Checkbox,Radio Button,奇怪的jquery行为单击radioButton和复选框上的事件 当用户单击单选按钮时,属性检查将首先切换,然后运行事件处理程序 当代码触发这些元素上的click事件时,首先事件处理程序正在运行,然后check属性正在更改 示例如下: 触发点击事件 $(函数(){ $(“#测试单击”)。单击(函数(){ $(“#测试复选框2”)。单击(); }); $(文档)。在(“单击“,”[name$=“test”]”上,函数(){ 打印(); }); var print=function(){ 警报(

奇怪的jquery行为单击radioButton和复选框上的事件

当用户单击单选按钮时,属性检查将首先切换,然后运行事件处理程序

当代码触发这些元素上的click事件时,首先事件处理程序正在运行,然后check属性正在更改

示例如下:


触发点击事件
$(函数(){
$(“#测试单击”)。单击(函数(){
$(“#测试复选框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");
});