单击表会导致多个 ajax 操作使用 jQuery 运行

Click on table causes multiple ajax operations are running with jQuery

本文关键字:操作 jQuery 运行 ajax 单击      更新时间:2023-09-26

在寻找问题的解决方案后,我可能会找到转折点并可以定义问题。我的代码使用 jQuery 和 Ajax,并在单击表单元格时触发。输出过去和现在都是我在间隔内刷新的表。好吧,当我单击一个单元格,然后单击另一个单元格时,输出正在根据单元格 A 和单元格 B 的传输值在输出之间切换。

我看了一下萤火虫,瞧,偷偷

摸摸地知道了原因。
GET http://localhost/trading/getuser_exp.php?q=NYSE
GET http://localhost/trading/getuser_exp.php?q=NASDAQ

这两个值并行运行,这是错误的。我需要一个单一的值,或者换句话说,如果我之前点击纽约证券交易所,价值是纽约证券交易所,然后我点击纳斯达克,这个值不再是纽约证券交易所,而是纳斯达克。

代码是使用的

$(document).ready(function(){

$(".information").click(function () {
var str = $(this).closest("tr").find("#nr").text(); 
window.setInterval(function(){      
          $.get("getuser_exp.php",
             { q:str },
             function(data) { $('.stock').html(data);
             } //function data
          );
}, 3000);

}); //information click

}); //document ready

现在是什么原因导致多次射击?在我眼中 - 坦率地说,初学者 - 没有什么是多重射击或接受多个值。不管是什么,我都会学习。

感谢您的任何帮助和帮助。

您需要清除旧间隔并开始一个新间隔。这就是为什么每次点击启动新的间隔计时器时都会多次触发的原因。

$(document).ready(function(){
   var timer = null;
   $(".information").click(function () {
      var str = $(this).closest("tr").find("#nr").text(); 
      if(timer!=null) {
         clearInterval(timer);
      }
      timer = window.setInterval(function(){      
         $.get("getuser_exp.php",
           { q:str },
           function(data) { 
              $('.stock').html(data);
           }
         );
      }, 3000);
   }); 
});