js點擊事件多次觸發(fā)問題

今天遇到了又一個神奇的問題,起因是做一個開啟禁用功能的按鈕,先給按鈕定義事件。

$('.pro_on').click(project.proTurnOff);
$('.pro_off').click(project.proTurnOn);

在這開啟事件函數(shù)中這樣寫,禁用事件同理。

//開啟按鈕事件
Project.prototype.proTurnOn = function(){
    pro_id = $(this).attr('id');
    var This = $(this);
    $.ajax({
        url:'/project_user/'+pro_id+'/edit',
        type:'get',
        data:{
            disable:0
        },
        beforeSend:function(){
            $('.loading').show();
        },
        success:function(data){

            if(data.status==200){
                This.html('禁用');
                This.removeClass('pro_off').addClass('pro_on');
                alert('修改為開啟');
                $('.pro_on').click(project.proTurnOff);
                $('.pro_off').click(project.proTurnOn);
            }
        }
    })
};

這里需要注意,修改class之后,前面定義的事件失效了,需要重新定義才生效。但是這個時候,神奇的事情發(fā)生了,點擊前幾次的時候,開啟禁用功能都正常,但是當(dāng)從第四次點擊開始,每點擊一次,就相當(dāng)于點擊了n+1次,時間觸發(fā)的次數(shù)越來越多,后經(jīng)大師(兄弟會--王飛龍)指點,需要在重新定義點擊時間之前,先取消之前的事件綁定。因此,修改如下

$('.pro_on').click(project.proTurnOff);           
$('.pro_off').click(project.proTurnOn);

修改為:

$('.pro_on').off("click").click(project.proTurnOff);
$('.pro_off').off("click").click(project.proTurnOn);

像往常一下,不知道為什么,但是,解決了。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 178,962評論 25 709
  • 2017.02.22 可以練習(xí),每當(dāng)這個時候,腦袋就犯困,我這腦袋真是神奇呀,一說讓你做事情,你就犯困,你可不要太...
    Carden閱讀 1,490評論 0 1
  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 15,201評論 4 61
  • 最近的工作可以讓我有相對比較大段的時間專注于做一件事。對于進(jìn)入一個新的領(lǐng)域,接觸一份新的工作,我還是記得曾有前輩給...
    何言閱色閱讀 732評論 0 1
  • 零點剛過,小A抱著手機,開始了打卡,為了怕忘記,她逐一的簽到,再簽到。 簽完到,她內(nèi)心坦然了些,仿佛又完成了許多任...
    妞妞飛閱讀 608評論 0 0

友情鏈接更多精彩內(nèi)容