按鈕點擊不起作用和點擊一次執行兩次問題解決


1.最初的時候是這種方式寫的按鈕點擊事件,在貨主部分正常顯示在貨運站部分點擊無效

$(".descriptionLink").click(function(){        
        if($(this).hasClass("icon-down")){            
            $(this).removeClass("icon-down").addClass("icon-up").html("收起明細");
            $(this).parents(".description-total").siblings(".description-details").slideDown();
        }else{            
            $(this).removeClass("icon-up").addClass("icon-down").html("展開明細");
            $(this).parents(".description-total").siblings(".description-details").slideUp();
        }
    });

2.換了一種方式去寫點擊事件在貨運站中才可以點擊,但是會出現點擊一次執行兩次的情況,表現就是列表展開后立馬收起

$(document).on('click','.descriptionLink',function(){        
        if($(this).hasClass("icon-down")){            
            $(this).removeClass("icon-down").addClass("icon-up").html("收起明細");
            $(this).parents(".description-total").siblings(".description-details").slideDown();
        }else{            
            $(this).removeClass("icon-up").addClass("icon-down").html("展開明細");
            $(this).parents(".description-total").siblings(".description-details").slideUp();
        }
    });

3.后面查了一下按這種方式來寫,阻止第二次點擊,顯示正常,查了下這個是因為JQ事件委托導致點擊事件多次執行,解決的辦法就是對點擊事件解綁,也就是off()

$(document).off().on('click','.descriptionLink',function(){        
        if($(this).hasClass("icon-down")){            
            $(this).removeClass("icon-down").addClass("icon-up").html("收起明細");
            $(this).parents(".description-total").siblings(".description-details").slideDown();
        }else{            
            $(this).removeClass("icon-up").addClass("icon-down").html("展開明細");
            $(this).parents(".description-total").siblings(".description-details").slideUp();
        }
    });

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM