试图在撤消链接上停止AJAX

时间:2017-05-02 16:08:58

标签: javascript java jquery

我正在尝试使用撤消操作删除列表。当客户删除列表时,我试图将他从列表详细信息页面(当前页面)带到列表页面(所有列表),在那里我将有一个名为撤消的链接,持续4秒。一旦用户点击撤消链接列表将恢复,用户将保持在同一页面。但我的问题是删除ajax调用即使我点击撤消链接。我需要停止预定的ajax(10秒)当用户点击撤消链接。



var isUndoClicked = false;

deleteProductList : function() {
  var listCode = 123; //some value.
  if (listCode) {
    $('#listDeleteUndoLink').click(function() {
      this.isUndoClicked = true;
      $('#' + listCode).show();
    });
    if (!this.isUndoClicked) {
      setTimeout(function() {
        this.xhr = $.ajax({
          url: "/lists/deleteListAjax/" + listCode,
          type: "get",
        }).done(function(data) {});
      }, 10000);
    }
  }
},

<a href="javascript:void(0)" id="listDeleteUndoLink">
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:2)

添加一个on click侦听器并“return false”退出该函数,并使用clearTimeout(var)来停止计时器。

var timer = setTimeout(function() {
    // do stuff
}, 1000);

$('#listDeleteUndoLink').on('click', function() {
    clearTimeout(timer);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<a href="javascript:void(0)" id="listDeleteUndoLink">