jquery似乎总是加载失败

imyangmo 2013-01-25 05:24:56
在各位大牛的帮助下解决了jquery对div从新排列的问题http://bbs.csdn.net/topics/390356285?page=1#post-393560524
现在遇到另一个问题。我后台是用php处理数据,然后前端用jquery的load方法来加载这个php到span上
前端html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script src="jquery.js" type="text/javascript"></script>
<script>
$(document).ready(function(){
$('#loading').load('后台处理数据的.php');
})
</script>
<script type="text/javascript">
window.onload = function () {
var divTestJQ = $("#divContainer"); //取得容器对象
var divJQ = $(">div.divframe", divTestJQ); //取容器需要重排的对象
var EntityList = []; //定义一个数组用于存放要排序的对象
divJQ.each(function () {
var thisJQ = $(this);
EntityList.push({ Name: parseInt(thisJQ.attr("name"), 10), JQ: thisJQ }); //把要排序的对象和排序的值一起放到一个新的对象里,并存入到数组
});
EntityList.sort(function (a, b) { //利用数组的排序方法重新排序对象
return a.Name - b.Name; //从小到大
});
for (var i = 0; i < EntityList.length; i++) {
EntityList[i].JQ.appendTo(divTestJQ); //把排序完的对象重新插入到容器对象
};
};
</script>

<style type="text/css">
.divframe{
padding:10px;margin:5px;border:1px solid #ccc;
}
</style>
</head>
<body>
<span id="loading"></span>
</body>
</html>

后台页面假设已经处理完成,得到了这个

<div id="divContainer">
<div name='1358988132' class = 'divframe'>1<br>
<div style = 'padding:10px;margin:5px;border:1px solid #ccc'>1</div>
</div>
<div name='1358968219' class = 'divframe'>2<br><div style = 'padding:10px;margin:5px;border:1px solid #ccc'>2</div>
</div>
<div name='1355785403' class = 'divframe'>3<br>
<div style = 'padding:10px;margin:5px;border:1px solid #ccc'>3</div>
</div>
<div name='1355630287' class = 'divframe'>4<br>
<div style = 'padding:10px;margin:5px;border:1px solid #ccc'>4</div>
</div>
<div name='1347463733' class = 'divframe'>19 <br>
<div style = 'padding:10px;margin:5px;border:1px solid #ccc'>19</div>
</div>
<div name='1347299717' class = 'divframe'>20<br>
<div style = 'padding:10px;margin:5px;border:1px solid #ccc'>20</div>
</div>
</div>

正确的话会对所有的div倒过来排序。
由于要等load完成才去排序,所以排序算法用了window.onload
在本地测试完全没有问题。但是一放到服务器上就有问题了。20次只有一次能排序成功,其他怎么刷新都看不到效果。服务器上已经放置了jquery.js.

弄了一下午才找到原因,实在是没辙了。
...全文
191 5 打赏 收藏 举报
写回复
5 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
imyangmo 2013-01-25
引用 4 楼 wangwei703 的回复:
试试看 JavaScript code?1234567891011121314151617181920$(document).ready(function() { $('#loading').load('后台处理数据的.php', function() { //load完成后回调函数 var divTestJQ = $(……
果然是我脑子迟钝定死了。。。 多谢
  • 打赏
  • 举报
回复
ddgx 2013-01-25
试试看

$(document).ready(function() {
    $('#loading').load('后台处理数据的.php',
    function() { //load完成后回调函数            
        var divTestJQ = $("#divContainer"); //取得容器对象             
        var divJQ = $(">div.divframe", divTestJQ); //取容器需要重排的对象             
        var EntityList = []; //定义一个数组用于存放要排序的对象             
        divJQ.each(function() {
            var thisJQ = $(this);
            EntityList.push({
                Name: parseInt(thisJQ.attr("name"), 10),
                JQ: thisJQ
            }); //把要排序的对象和排序的值一起放到一个新的对象里,并存入到数组
        });
        EntityList.sort(function(a, b) { //利用数组的排序方法重新排序对象                 
            return a.Name - b.Name; //从小到大             
        });
        for (var i = 0; i < EntityList.length; i++) {
            EntityList[i].JQ.appendTo(divTestJQ); //把排序完的对象重新插入到容器对象             
        })
    });
  • 打赏
  • 举报
回复
imyangmo 2013-01-25
看来又要找资料了。。。
  • 打赏
  • 举报
回复
imyangmo 2013-01-25
有没有什么办法能确保已经是加载成功的?
  • 打赏
  • 举报
回复
imyangmo 2013-01-25
我在前端的span前放了一个按钮,然后在排序的js上加一句按钮按下后执行 放到服务器上,按下按钮后成功排序 但是我总不能每次都叫用户去按一下那个按钮吧
  • 打赏
  • 举报
回复
相关推荐
发帖
JavaScript
加入

8.6w+

社区成员

Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
申请成为版主
帖子事件
创建了帖子
2013-01-25 05:24
社区公告
暂无公告