jquery - $.ajaxSetup({异步:false}); stops mousemove event

标签 jquery

此代码停止 mousemove 事件

$.ajaxSetup({async:false});
$.get(url).success(function(data) { result = data; });

有没有办法避免这种情况,但保留 $.ajaxSetup({async:false});,就像加载函数一样?

谢谢

补充:

如果我需要怎么办

$.ajaxSetup({async:false});
$.get(url).success(function(data) { result = data; });
$.ajaxSetup({async:true});
return result

如何处理?

谢谢

最佳答案

return 意味着同步代码流。然而,AJAX 是异步的,没有 async: false。这并不意味着您应该使用async: false。相反,您应该更改代码流以使用回调而不是返回值。

这是必需的,因为无法使异步代码同步(即您不能将 return 与异步函数一起使用)。唯一的方法是自己也提供回调:

function get(url, callback) {
    $.get(url).success(function(data) { callback(data); });
}

喜欢:

get("...", function(result) {
    // use `result` which you normally got by assigning the return value
    // of `get` to a variable
});

关于jquery - $.ajaxSetup({异步:false}); stops mousemove event,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8929065/

相关文章:

javascript - 从另一个函数解除绑定(bind) e.preventDefault 以转发到单击的链接

jquery - jQuery UI 中是否支持 CSS Sprite

javascript - 使用 jQuery 反转 CSS 动画

javascript - jQuery/Grails-在文本框更改时检测表中的行

javascript - 我有一个使用 jquery 切换的 div,但我为此 div 定义的背景颜色仅在我单击时可见

javascript - 动态元素在调用时不响应

javascript - 遍历列表并插入对象数组

javascript - 为什么 deferred.when() 在完成回调中返回 promise ?

javascript - .slideDown() 似乎不起作用

javascript - HTML 元素到 jQuery 元素