解决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;
     }
  });

});

经过这样一番处理后,按钮就不会无休止的调用,也不会造成调用一次就失效的情况。

原文地址:https://www.cnblogs.com/Jackie-sky/p/3387147.html