簡體   English   中英

防止多個事件觸發

[英]Prevent multiple event triggering

我又在這里

在此處查看演示

$(document).ready(function () {

    $("#id_priori").on('click', 'li', function(){
        var self = $(this),
            checkbox = self.find(":checkbox")[0];

        checkbox.checked = !checkbox.checked;

        self.toggleClass( 'on', checkbox.checked );
    }).find(":checkbox").each(function(){
       $(this).closest('li').toggleClass('on', this.checked);
    });

    $("#id_tipo").on('click', 'li', 'label', function () {
        var self = $(this),
            radio = self.find(":radio")[0];

        radio.checked = !radio.checked

        $(":radio:not(checked)").each(function () {
            $(this).closest('li').toggleClass("on", this.checked);
        });

    })
        .find(":radio").each(function () {
        $(this).closest('li').toggleClass('on', this.checked);
    });

});

一切正常,但對於標簽,當我單擊它們時,它們沒有檢查,做了一些微調,似乎一個事件多次觸發,並且取消了它們,嘗試設置警報,您會明白我的意思了

知道有什么問題嗎?

因為您要接管實際輸入的角色,所以需要允許輸入元素繼續自身的行為( http://jsfiddle.net/icodeforlove/rF2FT/2/

if (event.target === checkbox) return;

您需要做的就是如果目標是實際的輸入元素,請盡早返回。 現在,input元素正在對其進行檢查,然后您要告訴它取消對其進行檢查。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM