2012-02-08 31 views
13

我使用的標籤我的形式,像這樣:標籤和複選框上綁定的JavaScript jQuery的單擊事件同時

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

我想隱藏的元素,當用戶取消選中該複選框,並顯示它,否則。

問題是,如果我將click事件綁定到「foo」,它只會在用戶單擊複選框本身而不是標籤時起作用。因此,我是否也需要綁定標籤上的點擊事件?或者我應該在一個跨度內包含這兩個元素? 我的HTML已經包含2344個元素,所以我想在不添加任何內容的情況下做到這一點,如果可能的話,不要加倍JavaScript代碼或選擇器。

回答

14

而不是與click()事件綁定,您應該綁定使用change()事件,然而這種變化觸發的結果將是相同的:

$('#foo').change(
    function(){ 
     // do whatever 
    }); 

參考文獻:

+0

感謝您的完整答案! – Willy 2012-02-08 15:42:52

+0

不客氣,我很高興得到了幫助。 – 2012-02-08 15:45:28

3

change事件應該火的input是否labelinput點:

$("#foo").change(function() { ... }); 

http://jsfiddle.net/andrewwhitaker/6LMXW/

+0

感謝您的快速回答! – Willy 2012-02-08 15:42:10

+0

@Willy:沒問題!樂意效勞。 – 2012-02-08 15:58:52

相關問題