我有下面的代码在一个ASPX页面中的问题调用两次jQuery的单击事件处理的一个复选框
- 如果我点击复选框(小广场),它按预期工作
- 如果我点击复选框的文本(“复选框XYZ”),然后单击事件被触发两次,显示两次警报。
我想这与该复选框被渲染到HTML的方式,这是这样做的:
<span class="test">
<input id="ctl00_c1_cb1" type="checkbox" name="ctl00$c1$cb1" checked="checked"/>
<label for="ctl00_c1_cb1">Checkbox XYZ</label>
</span>
如何正确设置单击事件处理程序,以防止它被称为两次?
@Martin - 我认为这是因为带有'for' attrbute的标签引发了附加元素的click事件。因此,在您的jQuery代码中,您为标签和输入设置了单击事件处理程序。当点击标签时,您在标签上设置的点击事件处理程序将执行,然后在标签引发单击事件时,输入上设置的点击事件处理程序将执行。 – 2009-10-08 09:34:42
UpVote!当使用带有输入的标签时,我有同样的事情,改为div,并且它已经消失 – 2012-09-15 14:56:45