我有下面的代碼在一個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