复选框上的jquery触发器更改事件

Zel*_*Ady 27 javascript jquery

是否可以使用javascript/jquery在复选框上触发更改事件?

像这样的东西(我点击按钮运行triggerChange):

<label><input type="checkbox" id="chk"/>Label for chk</label>

<script>
function triggerChange(){
    $("#chk").trigger("change");
}
</script>
Run Code Online (Sandbox Code Playgroud)

当我运行上面的代码时,我得到了这个错误:" 触发器不是一个函数 ".

Jac*_*ace 24

trigger is not a function错误消息表明其他内容正在发挥作用.根据这个SO问题:

如果找不到jQuery选择器会发生什么?

no.good.at.coding 说:

但请注意,您必须确保选择器是一个jQuery对象!否则,您可能会收到错误消息,指示"触发器不是函数".

你可能忘记了jQuery?


至于你的实现,你应该对你使用它的方式很好.但是trigger应该用于触发已经通过jQuery附加的元素的事件方法.看看我的演示:

小提琴:
点击事件:http://jsfiddle.net/fS4R5/1/
没有点击事件:http://jsfiddle.net/fS4R5/2/

HTML:

<label><input type="checkbox" id="chk"/>Label for chk</label>
Run Code Online (Sandbox Code Playgroud)

JS:

function triggerChange(){
    $("#chk").trigger("change");
}

$("#chk").change(function() {
   alert("triggered!"); 
});

triggerChange();
Run Code Online (Sandbox Code Playgroud)


Ale*_*lex 7

确保启用“输入类型”复选框,如果禁用,触发器将不会触发事件

//fire event 
$('#ceckBoxId').click();
$('#ceckBoxId').trigger('click');
Run Code Online (Sandbox Code Playgroud)

或更改复选框checked

$('#ceckBoxId').prop('checked', true);
$('#ceckBoxId').prop('checked', false);
Run Code Online (Sandbox Code Playgroud)


Joa*_* VR 5

在 jQuery 中,您通常可以通过调用它的 eventhandler 方法而不带任何函数参数来触发事件。

例如,点击处理程序可以这样分配:

$('#mything').click(function(e){dostuff});

单击事件本身可以通过简单地运行来触发: $('#mything').click();

我怀疑这可以为 jQuery 中的每个现有事件完成。

  • 你也可以用`.trigger("click")`来调用它。没有什么问题。 (3认同)