Javascript 如何触发调用此函数?

Javascript 如何触发调用此函数?,javascript,jquery,Javascript,Jquery,我正在尝试以编程方式调用此函数 我的尝试 $('input[name="CBWaive"]').click(function () { console.log("Entering"); } 当我单击ID为cbaverage的复选框时,我会得到console.log 当我尝试以编程方式(使用上面的代码)输入时,什么都没有发生。没有控制台日志。需要从事件处理程序调用checkBoxClick(),因为它使用$(this)测试单击的元素 如果要以编程方式触发它,请调用元素上的cha

我正在尝试以编程方式调用此函数

我的尝试

$('input[name="CBWaive"]').click(function () {
         console.log("Entering");
}
当我单击ID为cbaverage的复选框时,我会得到console.log

当我尝试以编程方式(使用上面的代码)输入时,什么都没有发生。没有控制台日志。

需要从事件处理程序调用checkBoxClick(),因为它使用
$(this)
测试单击的元素

如果要以编程方式触发它,请调用元素上的
change()
方法

$(“#cbaverage”)。在(“更改”上,复选框单击);
$(“#cb弃权”).attr(“已检查”、“已检查”).change();
函数checkBoxClick(){
如果($(this).is(':checked')){
警报(“已选中!”);
}
}

调用checkBoxClick函数时,需要确保“this”指的是checkbox元素。您可以通过使用作为第一个参数的来实现这一点,该参数在被调用函数中应该是什么“this”

$("#CBWaive").on("change", checkBoxClick);
checkBoxClick();
$("#CBWaive").attr("checked", "checked");

function checkBoxClick() {
    if ($(this).is(':checked')) {
        alert("Is checked!");
    }
}

一切看起来都很好。有什么问题吗?很难不知道您要做什么。该函数使用
this
——当您在事件处理程序外部调用它时应该是什么?这不会触发$('input[name=“cbaverage”]')。单击(function()event handler元素是否具有
id=“cbaverage”
这是DOM元素,而不是jQuery对象。这就是为什么你需要写
$(这)
来在jQuery中包装它。你是对的,我的jQuery有点生锈。我认为jQuery检测到DOM元素已经包装,不会再包装它,所以代码仍然有效。最干净的应该是:checkBoxClick.call(document.getElementById(“cb弃权”);实际上,它会将其展开并再次包装,但您认为它仍然可以工作,这是对的。但是有时候jQuery事件处理程序会将
作为DOM元素直接访问
,例如
console.log(this.id);
,这与您调用它的方式不同。
checkBoxClick.call($("#CBWaive"));