gpt4 book ai didi

javascript - jQuery 延迟似乎没有为此类事件提供正确的延迟

转载 作者:行者123 更新时间:2023-12-02 20:15:52 29 4
gpt4 key购买 nike

今天我在需要时得到了一些帮助,这就是我想到的:

      $(window).keypress(function (e)
{
if (e.keyCode == 13)
{
$('#doCheck')
.css('color', '#666')
.delay(100)
.queue(function (next)
{
$(this).css('color', '#00ff00');
next();
});

doCheck('mark1');
}

<input id='doCheck' type="button" onclick="doCheck('mark1'); return false;" value="Mark" />

这里的想法是,当用户按下 ENTER 键时,按钮的颜色将改变颜色 100 毫秒,同时我调用一个名为 doCheck 的函数来调用 AJAX。

我的问题是,在按钮颜色变回 #666 之前,似乎有近一秒的最小延迟。我预计时间要短得多,但即使我将延迟设置为 10,它似乎仍然延迟 1/2 到一秒。我应该补充一点,如果我设置像五秒这样的长延迟,那么它确实会执行五秒。

我看不出这里出了什么问题。

有人有什么想法吗?

谢谢

这是 doCheck 函数。该功能工作正常。只是按钮的事情给我带来了问题。请注意,我只是将其更改为 async: true

function doCheck(task)
{
var parms = {
task: task,
pk: $('#Q_PartitionKey').val(),
rk: $('#Q_RowKey').val(),
};
$.ajax({
type: "POST",
traditional: true,
url: '/power/check',
async: true,
data: parms,
dataType: "json",
success: function (data)
{
// $('#doCheckMark').attr("disabled", false);
// $('#doCheckMark').css("color", "#000");
},
error: function ()
{
var cdefg = data;
}
});
}

最佳答案

doCheck 正在执行同步调用吗?如果是这样,排队的函数将不会被调用,直到您的 ajax 调用返回...这可能会导致意外的延迟。

修复方法是确保 doCheck 使用正确的异步调用。

关于javascript - jQuery 延迟似乎没有为此类事件提供正确的延迟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6318189/

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