jQuery .load()没有被触发

时间:2011-06-11 07:51:21

标签: jquery

响应一个事件,执行:

$.getScript('nav.php?node=' + node);

nav.php返回以下正确的标题('Content-type: application/javascript'

$('#uis').append('<div id="app-personal-games-ui"></div>',function() {
    $('#app-personal-games-ui').load('loadhtml.php', {from: 'app.personal.games.ui'})
);
app.personal.games = function() {
    activate('app-personal-games-ui');
};
app.personal.games();

我想用上面的代码实现的是:

  1. 将新内容的封装<div>附加到div id="uis">
  2. 我们为刚添加的div设置了id,现在将该ID用作选择器并使用.load()加载实际的html
  3. 向我们的app对象添加一个函数。此功能将使新div可见
  4. 执行步骤3中添加的功能
  5. 结果显示除#2外,所有步骤均已成功完成。即将<div id="app-personal-games-ui"></div> 添加到正确的位置,并且firebug中的app.personal.games.toString();显示该函数已添加到对象并具有正确的代码。但load行未执行,新div仍为空白。

    为什么会这样,我怎样才能让它发挥作用?

2 个答案:

答案 0 :(得分:0)

根据documentation.append()函数不进行回调。所以你可以尝试以下方法:

var query = { from: 'app.personal.games.ui' };
$('<div id="app-personal-games-ui"></div>').load('loadhtml.php', query, function() {
    $('#uid').append(this);
});

答案 1 :(得分:0)

我发现了什么问题。 真正错误的是我需要一些睡眠,但仍然不会去睡觉;)。但是这个脚本的错误是.append()没有采用回调函数,我应该将上面的内容更改为:

$('#uis').append('<div id="app-personal-games-ui"></div>');
$('#app-personal-games-ui').load('loadhtml.php', {from: 'app.personal.games.ui'});
相关问题