有人可以向我解释为什么我使用这段代码会遇到竞争条件吗:
$("#someid").load( "home.php", callback_function );
function callback_function()
{
//some jQuery.get() goes here
}
而不是这段代码:
$("#someid").load( "home.php", function(){ callback_function(); } );
function callback_function()
{
//some jQuery.get() goes here
}
第一个代码块中的竞争条件是 callback_function() 中的处理在加载完成后不会执行,但似乎异步运行并且会搞砸一些 UI 东西(这个 UI 东西依赖于 jQuery. get() 返回)。我是 jQuery/JavaScript 的新手,想知道为什么我需要明确的“function(){ callback_function(); }”。谢谢!
最佳答案
查看 send a jquery callback function inside a variable
像这样声明函数
function callback_function(){
//some jQuery.get() goes here
}
或
var callback_function = function(){
//some jQuery.get() goes here
}
然后试试这个
$("#someid").load( "home.php",null, callback_function );
将回调参数作为第三个参数传递以避免混淆 jquery 加载 API(抱歉没有得到确切的词:))。
参见 load documentation ,
关于javascript - jQuery.load() 不适用于定义的函数作为回调?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8905143/