gpt4 book ai didi

javascript - 停止超时函数

转载 作者:行者123 更新时间:2023-11-30 08:13:05 25 4
gpt4 key购买 nike

在这段代码中:

$("a").live("click", function(e) {
e.preventDefault();
setTimeout(function () {
$.get(
"someOtherUrl",
{someVariable: "someValue"},
function(result) {
$(".result").html(render(result));
}
);
}, 1000);
$('a').live("touchmove", function(e) {clearTimeout()});
});

当用户在屏幕上移动他的手指时,我想停止超时。问题是 clearTimeout() 不起作用,因为它没有链接到超时。我将如何命名超时并快速清除它?我使用的方法是否正确?

最佳答案

将“setTimeout()”的返回值保存在一个变量中,然后将该值传递给“clearTimeout()”以清除它。

$("a").live("click", function(e) {
e.preventDefault();
var t = setTimeout(function () {

$.get(
"someOtherUrl",
{someVariable: "someValue"},
function(result) {
$(".result").html(render(result));
}
);

}, 1000);
$('a').live("touchmove", function(e) {clearTimeout(t);});
});

现在我会写得完全不同;事实上,您在每次点击时都添加了一个冗余的“touchmove”处理程序。也许是这样的:

function setupAnchorClicks() {
var timer = null;
$("a").live("click", function(e) {
e.preventDefault();

timer = setTimeout(function() {
// ...
}, 1000);

}).live("touchmove", function() {
clearTimeout(timer);
});
}

setupAnchorClicks();

关于javascript - 停止超时函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7626479/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com