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问题:
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)
确保启用“输入类型”复选框,如果禁用,触发器将不会触发事件
//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)
在 jQuery 中,您通常可以通过调用它的 eventhandler 方法而不带任何函数参数来触发事件。
例如,点击处理程序可以这样分配:
$('#mything').click(function(e){dostuff});
单击事件本身可以通过简单地运行来触发:
$('#mything').click();
我怀疑这可以为 jQuery 中的每个现有事件完成。