【发布时间】:2011-05-24 14:51:37
【问题描述】:
有点难以解释,所以我设置了一个 jsFiddle here。
基本上,当用户单击复选框时,我会触发一些行为。在另一个地方,我试图以编程方式单击复选框,我需要看到完全相同的行为。不行,貌似和点击顺序和确定checked属性有关。
如何在不借助 hack 的情况下获得我正在寻找的行为?
【问题讨论】:
标签: jquery checkbox click dom-events
有点难以解释,所以我设置了一个 jsFiddle here。
基本上,当用户单击复选框时,我会触发一些行为。在另一个地方,我试图以编程方式单击复选框,我需要看到完全相同的行为。不行,貌似和点击顺序和确定checked属性有关。
如何在不借助 hack 的情况下获得我正在寻找的行为?
【问题讨论】:
标签: jquery checkbox click dom-events
我倾向于在这里使用 change 处理程序(因为 jQuery 规范了行为,它不需要 blur),然后像这样触发该事件:
$('span').click(function() { $('.test').click().change(); });
然后,您对顺序很明确...并且您没有本机操作与事件处理程序顺序的问题,you can test it out here。
【讨论】:
你不需要为这种行为添加 javascript...只需使用这个 html 语法:
<input type="checkbox" id="myid" /> <label for="myid">My Label</label>
如果您想添加 javascript 侦听器,您可以添加更改或单击输入字段。
:)
或者你应该使用 jquery 来做到这一点:
$('span').click(function() { $('.test').trigger('click'); });
【讨论】:
我遇到了同样的问题,并修复了它调用 javascript click 函数而不是像这样的 jQuery 函数:
$('.test')[0].click();
【讨论】: