首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

jquery好似总是加载失败

2013-02-15 
jquery似乎总是加载失败在各位大牛的帮助下解决了jquery对div从新排列的问题http://bbs.csdn.net/topics/3

jquery似乎总是加载失败
在各位大牛的帮助下解决了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.

弄了一下午才找到原因,实在是没辙了。
[解决办法]
试试看

$(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); //把排序完的对象重新插入到容器对象             
        })
    });

热点排行