欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

jquery $(xx).load()的一个问题 同步

script src="jquery-1.3.2.min.js"></script>
<script language="javascript">
function test(){
$("#show").load("DaiMaTiShi.asp");
alert($("#show").text());
}

</script>
<title>无标题文档</title>
</head>

<body>
<input type="submit" id="Test" value="测试" onclick="test()" />
<div id="show">
aa
</div>

麻烦大家看看这段代码。
按下 测试 按钮这后弹出的是 aa 而不是返回的内容
要按第二次的时候才能显示出返回的内容

请问是不是test()这个函数执行完之后才将内容放到show这个div里面的,
所以导致了这个结果?

这是由于 load 加载时并不是同步的,是异步的。在你点击执行 load 时,在load异步处理还没完成时,当然,就是调出了原来 #show 的内容了,当你第二次当点击时,原来第一次点击的 load异步已经完成了,DOM内容已经改了,这时显示的,就是load的内容了。
你应该加个回调函数,来判断是否已经加载完成了。

$("#show").load("DaiMaTiShi.asp",function(){
alert($("#show").text());
});

这样的意思是,当 DaiMaTiShi.asp 页面内容 load 完成后,执行 function,即 alert #show 的内容了


改成这样就好啦
function test(){
$("#show").load("DaiMaTiShi.asp",function(){
alert($("#show").text());
});

}

</script>
超级小裤衩  | 2009-06-25 10:56
评论 
0 0
你可以用
$.get("DaiMaTiShi.asp",function(data){
$("#show").html(data);
alert($("#show").text());
})


来自 http://zhidao.baidu.com/link?url=zNobNv9U5uvvHps820IqFcygPR12w4W9AUoj9iExvo-VDejeXyFfQSP6_UyRmBNdlhW...

普通分类: