2014-05-13 90 views
0

今天我寫了代碼,如果一個人點擊一個checbox正在運行代碼。.on更改與點擊

我寫了這樣的代碼:

$(".checkbox").on("click", function() { 
    //code 
}); 

我也可以寫這樣的代碼:

$(".checkbox").on("change", function() { 
    //code 
}); 

既能實現我期待實現同樣的目的,但我應該在使用一個另一個?

+0

用戶不點擊什麼?這是不一樣的...... – elclanrs

+0

布魯夫':)'如果你的意思是'改變===點擊'然後它是不正確的決定什麼事件用戶調用或應該觸發。 –

+2

您可以切換到輸入,然後點擊空格。換句話說,'click'不會捕獲鍵盤事件。 –

回答

7

您應該使用change,因爲複選框可以通過鍵盤(選項卡到元素,按空格)進行更改。此外,它可以從其他一些Javascript代碼(將來)中更改,或者如果該標籤「附加」到複選框,則可以通過點擊標籤進行更改。

1

每當用戶更改其值時,表單元素都會提升onchange事件。像其他答案一樣,這可能是由於鼠標點擊或按鍵。

只要用戶點擊它,任何佔用屏幕空間的元素都會引發一個onclick事件。你提供的回調被賦予了一個參數,它包含了光標的X和Y座標以及其他一些東西。

它恰好如此,當你點擊一個複選框時,它會改變它的值,所以會引發onclickonchange事件。

您應該使用最符合您想要的效果的事件。