解決label點選事件觸發兩次問題
阿新 • • 發佈:2021-12-17
問題描述:
通常,為了使用者體驗,我們點選單選框或者複選框後面文字,即可選中當前項。程式碼如下:
<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 本部落格文章大多為原創或者偽原創,轉載請關注博主,原創文章並且留下連結。