javascript - jQuery.load() 不适用于定义的函数作为回调?

标签 javascript jquery

有人可以向我解释为什么我使用这段代码会遇到竞争条件吗:

$("#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/

相关文章:

javascript - 如何在 DOM 更改后更新存储在变量中的 jQuery 对象?

javascript - 为什么在点击事件后要弹出几次警告?

javascript - jQuery 水平拖动非常宽的 div

javascript - jQuery如何找到一个不相邻的 sibling ?

javascript - 将选择器添加到动态生成的 <li> 元素中

php - 在 div 中加载多个表单,但当我单击提交时每个表单都会消失

javascript - HTML5 - 跨浏览器 Iframe postmessage - 父子通信

javascript - 如何配置 IE 使 "wscript.shell"工作

javascript - 使用 Jquery 检测 CSS3 属性是否可行?

javascript - 如何修复语法错误: function statement requires a name