【发布时间】:2018-09-08 03:14:47
【问题描述】:
我有一个清除所有复选框值然后发出 AJAX 请求的函数,但有时它会在未选中复选框之前触发。
function clear() {
$("#a").prop("checked", false);
$("#b").prop("checked", false);
$("#c").prop("checked", false);
ajaxFunction();
}
有没有不使用超时的替代方法?例如,使用 Promise 还是其他?
【问题讨论】:
-
请分享一个有效的 sn-p 来证明您的问题。
-
什么时候调用 clear 函数?
-
but sometimes it fire before unchecked.这是不可能的,因为prop()是一个同步操作。该问题(如果有)可能是由意外的逻辑流引起的。请添加更完整的 HTML 和 JS 示例。 -
在未选中复选框之前不会触发。如果显示尚未更新,它可能会这样做,但代码确实按照您拥有它的顺序运行。如果您对此感到困扰,只需将最后一行更改为
setTimeout(ajaxFunction, 100);(注意ajaxFunction后面没有括号) -
Promise 通常用于异步代码,因为
.prop是同步的,在这里使用 Promise 不会有任何好处。
标签: javascript jquery ajax promise