天天看點

解決Jqyery的Trigger事件中兩個按鈕互相觸發至死循環問題

今天做項目,其中有個功能需要兩個圖表的關聯,用到兩個按鈕,這兩個按鈕分别控制兩個圖表,第一次直接在btn1的單擊事件中使用了$("btn2").trigger("click"),

在按鈕2中同樣觸發了按鈕1的事件,本來覺得這樣挺好的,沒想到一運作,浏覽器陷入癱瘓狀态,我整理了下邏輯,發現這種寫法會導緻死循環,于是想到一個臨時的解決辦法:

$(function(){

  var value = 0;

  $("#btn1").click(function(){
    alert("abc");
    if(value < 2)
    {
      value += 1;
      $("#btn2").trigger("click");
    }
    else
    {
     value = 0;
     }
  });

  $("#btn2").click(function(){
    alert("efg");
    if(value < 2)
    {
      value += 1;
      $("$btn1").trigger("click");
     }
     else
     {
       value = 0;
     }
  });

});      

經過這樣一番處理後,按鈕就不會無休止的調用,也不會造成調用一次就失效的情況。