1. 程式人生 > 其它 >解決label點選事件觸發兩次問題

解決label點選事件觸發兩次問題

問題描述:

通常,為了使用者體驗,我們點選單選框或者複選框後面文字,即可選中當前項。程式碼如下:

<label> <input type="radio" name="sex" />男 </label> <label> <input type="radio" name="sex" />女 </label>
但是,此時,如果label標籤有點選事件,則會觸發兩次。

問題原因:

點選label的時候,事件冒泡一次,同時會觸發關聯的input的click事件,導致事件再次冒泡

解決辦法:

1.判斷事件來源,如果是input,則阻止。程式碼如下:
$("label").click(function (e) { if ($(e.target).is("input")); return //code })


這個方法同樣適用於解決“點選頁面空白處隱藏彈窗”問題。

2.從寫法上解決,使用label標籤的for屬性,程式碼如下:
`

`

作者:行果出處:http://www.cnblogs.com/xinggood 本部落格文章大多為原創或者偽原創,轉載請關注博主,原創文章並且留下連結。