Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/458.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 复选框单击事件未在选中时触发_Javascript_Jquery - Fatal编程技术网

Javascript 复选框单击事件未在选中时触发

Javascript 复选框单击事件未在选中时触发,javascript,jquery,Javascript,Jquery,我有一个id为myopt的复选框,我有一个点击事件处理程序,如下所示 $("#globalBody").on("click", "#myopt", function (event) { if ($(this).prop("checked")) { // do something } else { // do something } }); 现在在我的代码中,我知道了 $("#myopt").attr("checked",true); 我

我有一个id为myopt的复选框,我有一个点击事件处理程序,如下所示

$("#globalBody").on("click", "#myopt", function (event) {
    if ($(this).prop("checked")) {
        // do something
    } else {
        // do something
    }
});
现在在我的代码中,我知道了

$("#myopt").attr("checked",true);
我的问题是,这不会触发上面的click事件处理程序。如果我手动单击复选框,就会调用它

问题是什么?

您需要使用以编程方式调用单击处理程序

对于给定的事件类型,执行附加到匹配元素的所有处理程序和行为

剧本

注意:我建议您使用
change
event

$("#globalBody").on("change", "#myopt", function (event) {
    if (this.checked) {
        // do something
    } else {
        // do something
    }
});

//Change
$("#myopt").prop("checked",true).trigger('change');
请检查一下这把小提琴

根据您的需要,我有两个版本。据我所知,您需要单击
#globalBody
中的某个位置,然后选中
myopt
复选框的状态。在上面的提琴中,我做到了这一点,但我在注释中放置了一个代码块,用于处理第二个版本,在这种情况下,只有当
myopt
checkbox状态发生变化时(直接单击复选框),您才需要收听。
希望它能有所帮助

使用更改而不是单击的任何原因?@testndtv,仔细检查哦,是的……上面的代码实际上取消了复选框@测试和电视,这就是你想要的?
$("#globalBody").on("change", "#myopt", function (event) {
    if (this.checked) {
        // do something
    } else {
        // do something
    }
});

//Change
$("#myopt").prop("checked",true).trigger('change');