gpt4 book ai didi

javascript - 为什么 jQuery.attr() 方法在我的 'click' 事件中不起作用?

转载 作者:行者123 更新时间:2023-11-29 17:26:16 25 4
gpt4 key购买 nike

我有以下原型(prototype)代码来在单击按钮时触发一个过程:

jQuery("#queue-process").click(function() {
jQuery("#queue-process").attr("disabled", "disabled");
try {
processQueue();
} catch (e) {
console.log(e.message);
} finally {
jQuery("#queue-process").removeAttr("disabled");
}
});

processQueue 函数总是被调用,但是 attr("disabled", "disabled") 仅在我在 Chrome JavaScript 控制台中调试匿名函数时被调用,也就是说,如果我在该行上放置一个断点,然后单步执行它,它就可以工作,但在调试器之外只有 processQueue() 执行。

为什么会这样?

最佳答案

它可能在您不进行调试时执行。

我的猜测是 processQueue() 立即返回,因此代码立即转到 finally block ,组件立即重新启用,因此您实际上看不到它。如果进行调试,则会阻止执行,并且可以看到组件被禁用。

processQueue 到底在做什么?如果它正在执行一些 Ajax 工作,请记住默认情况下 Ajax 请求是异步执行的。也许您需要向 processQueue 传递一个回调函数,所以您只在工作完成时重新启用#queue-process?

关于javascript - 为什么 jQuery.attr() 方法在我的 'click' 事件中不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8531982/

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