【发布时间】:2011-04-27 22:30:22
【问题描述】:
在我执行 .load(somefile.php) 之后,其余的 js 代码将被执行,除非它在 .load(somefile.php function(){some code here}) 中。这也是 $.ajax 成功或完整功能的问题。当它在里面工作时,当它在外面不工作时。这是一些小测试脚本。
$(document).ready(function(){
$("#loadData").click(function(){
$(this).text("...One Moment Please...");
$("#container").
append('<div id="favoriteFiles"></div>').
load("data.php ul#favoriteFiles", function(){$("#loadData").remove();});
});
///this part is not working when outside of .load function
/// when inside it is working
$("li").click(function(){
$(this).hide();
});
});
//data.php looks like this
<ul id="favoriteFiles">
<li style="font-weight: bold; list-style-type: none;">My favorite files</li>
<li>Contact.php</li>
<li>second.doc</li>
<li>test.php</li>
<li>a.test.ini</li>
</ul>
所以我问你们这是怎么可能的,我该如何解决这个问题,因为将所有内容都放在 .success 或 .complete 或 .load 函数中是愚蠢的。
请问,有人知道吗?这只是一个简单的例子。我需要 jquery .load 完全其他示例。但原理是一样的。
【问题讨论】:
-
ajax调用后的代码是否依赖于ajax调用的结果?由于 ajax 根据定义是异步的,因此脚本将在等待 ajax 响应时继续执行。显然,如果脚本的后面部分期望 ajax 调用已经完成,这可能会导致问题。
-
我不太确定这里问的是什么。
-
改用
$("li").live('click', function(){ $(this).hide(); });