jquery .load()没有替换Firefox上的内容

时间:2010-10-29 18:37:22

标签: jquery

当点击一个链接时,我正在使用一行简单的jquery来加载一个新的“歌曲意义”。这在Chrome和IE上运行良好,但在Firefox中没有变化。我正在传递带有'sid'变量的歌曲ID,以便loadmeaning.php知道我们正在寻找什么歌。

$('#songmeaning').load('/music/ajax/loadmeaning.php', "sid="+id);

我打开了Firebug,我注意到它实际上是从loadmeaning.php中成功提取数据,它只是不替换#songmeaning的内容 - 而且只是在Firefox中。

是否有其他人遇到此问题,或者可以提供一些提示?

这是在歌曲元素

周围使用的HTML
<div class="meaning">
    <div id="refresh" onclick="refreshMeaning(<?=$songID;?>)"><img src="/images/refresh_icon.png" height="16" width="16" title="Load More Meanings"></div>
    <div id="songmeaning" class="indent"><?=$songMeaning;?></div>
</div>

感谢。

3 个答案:

答案 0 :(得分:2)

您是否尝试使用

等新内容替换
$('#songmeaning').html('new data from server');

or


$('#songmeaning').text('new data from server');

答案 1 :(得分:1)

仔细检查您的DOM结构,确保songmeaning确实是唯一ID。如果它不是唯一的,当您尝试使用它时,不同的浏览器可能会给您不同的结果。除此之外,我什么都想不到。你在Firebug中有任何错误吗?

修改现在(2010-10-29 22:24 BST)点击该刷新链接对我无法在Firefox Chrome中执行任何操作。代码是:

$('#songmeaning').get('/music/ajax/loadmeaning.php', "sid="+id);

get应为load。但我假设你做了一些改变?由于您的标题是load ...

编辑现在(2010-10-30 09:07)它在Firefox 3.6上工作得很好,代码又改变了:

$('#refresh').html("<img src='/images/loading.gif' height='20' width='20' title='Loading'>");
$('#songmeaning').fadeOut('fast');
var refreshIcon = function refreshIcon() { $('#songmeaning').fadeIn(); $('#refresh').html("<img src='/images/refresh_icon.png' height='16' width='16' title='Load More Meanings'>"); }
$('#songmeaning').load('/music/ajax/loadmeaning.php', "sid="+id, refreshIcon); 

答案 2 :(得分:-1)

您是否在Firebug中看到响应文本?如果它显示空响应,则可能是跨域安全问题。否则,请尝试使用get代替load,并将console.log(arguments)放入回调函数中。

对于它的价值,该页面在FF3.6中适用于我。