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

时间:2014-04-01 17:03:26

标签: javascript jquery ajax

在寻找问题的解决方案之后,我可以找到转折点并且可以定义问题。 我的代码使用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

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

感谢您的帮助和帮助。

1 个答案:

答案 0 :(得分:2)

您需要清除旧间隔并开始新间隔。这就是为什么你会在每次点击开始一个新的间隔计时器时获得多次点火。

$(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);
   }); 
});