我有一个ID为myopt的复选框,并且有一个如下所示的click事件处理程序;

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

现在在我的代码中
$("#myopt").attr("checked",true);

我的问题是,这不会触发上面的click事件处理程序。如果我手动单击复选框,它将被调用。

有什么问题?

最佳答案

您需要使用 .trigger() 以编程方式调用点击处理程序



脚本

$("#myopt").prop("checked",true).trigger('click');

注意:我建议您使用change事件
$("#globalBody").on("change", "#myopt", function (event) {
    if (this.checked) {
        // do something
    } else {
        // do something
    }
});

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

关于javascript - 复选框点击事件未在选中时触发,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30481235/

10-09 14:23