label的click()事件執行兩次

如果你的結構是label內寫input實現點擊文字時候input也有相應。

並且,把事件設置在了label上,那麼就會執行兩次了。

html:

<label>

<input type="checkbox"/>滬深A股

</label>


jq/js:

$(document).ready(function () {
$("label").click(function (){
alert(1);
});
});

因爲:

不瞭解label的,請看:http://www.w3school.com.cn/tags/tag_label.asp

<label> 標籤爲 input 元素定義標註(標記)。

label 元素不會向用戶呈現任何特殊效果。不過,它爲鼠標用戶改進了可用性。如果您在 label 元素內點擊文本,就會觸發此控件。就是說,當用戶選擇該標籤時,瀏覽器就會自動將焦點轉到和標籤相關的表單控件上。

<label> 標籤的 for 屬性應當與相關元素的 id 屬性相同。

所以:

看到紅色部分解釋我們應該知道,當label執行click事件時,那麼它會傳遞給input再執行一次同一click事件。

jq/js:

$(document).ready(function () {
$("input").click(function (){
alert(1);
});
});

把事件放在input上,點擊文字也可以click事件執行。而且不會有重複的click事件發生。


html:

<label>

<input type="checkbox"/>滬深A股

</label>

jq/js:

$(document).ready(function () {
$("label").click(function (){
alert(1);
});
});

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章