我正在尝试使用撤消操作删除列表。当客户删除列表时,我试图将他从列表详细信息页面(当前页面)带到列表页面(所有列表),在那里我将有一个名为撤消的链接,持续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;
答案 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">