2009-07-26 34 views
0

相关:How do I run different versions of jQuery on the same page?如何获得较旧的jQuery代码来使用更新版本的jquery?


我有一个使用了大量的jQuery的网页,我有一个拖放保存位置为MySQL数据库也。 我的jquery文件大约2岁,今天我试图使用更新的版本,因为有一个我想使用的脚本,但它只适用于jquery过去一年内的较新版本。

在我放入新版本的jquery之后,我的拖放功能无法正常工作,除了我的拖放代码之外,其他所有功能都在我的页面上工作。它部分工作。

我的页面有2列,您可以将项目拖到2个柱子上,但现在它只拖动左栏,右栏柱中的项目不会移动。

移动的左列中的项目不会找到放置的位置,从而释放项目丢失。我的代码的ajax部分仍然有效,因为当我“丢失”一个项目时,它会更新数据库,并且该项目列表中的项目ID号将会丢失。

如何让旧的jquery代码工作?

这里是我的代码

<script> 
var _x; 
var _y; 
var _pos; 
if(document.all){document.body.onload=b_onload;} 
else{document.body.setAttribute("onload","b_onload()");} 
function b_onload(){ 
    $('#columns td.portlet_td').each(function(i){ 
     $(this).children("br").remove(); 
    }); 
    $('#columns td.portlet_td').Sortable(
     { 
      accept: 'portlet', 
      helperclass: 'sort_placeholder', 
      activeclass : 'sortableactive', 
      opacity: 0.7, 
      tolerance: 'touch', 
      handle:'.drag-handler', 

      onStop:function(){ 

       var x = getPos(); 

       if(!$("#lgif").get(0)){ 
        $('<i'+'mg id="lgif" src="images/loading.gif" style="display:block;position:absolute;top:500px;left:50%;" />').appendTo('body'); 
       } 

       var __top = (document.body && document.body.scrollTop)?(document.body.scrollTop):((document.documentElement && document.documentElement.scrollTop)? document.documentElement.scrollTop: 0); 

       $("#lgif").css({top:__top+'px'}); 

       $("#lgif").show(); 
$.getJSON(
    '/member/beta/saveposition.php', 
    { 
     uid:(USER.ID), 
     position:x 
    }, 
    function(json){ 
     $("#lgif").hide(); 
    } 
); 
      } 
     } 
    ); 



}; 
function resetPos(){ 
    $.getJSON(
     '/member/beta/saveposition.php', 
     { 
      uid:(USER.ID), 
      position:"0:0|0:1|0:2|0:3|0:4|0:5|0:6|1:7|1:8|1:9|1:10|1:11|1:12|1:13|1:14|1:15|1:16|" 
     }, 
     function(json){ 
      $("#lgif").hide(); 
     } 
    ); 
} 
function getPos(){ 
    _pos=""; 
    $('#columns td.portlet_td').each(function(i){ 
     _x=i; 
     $(this).children(".portlet").each(function(j){ 
      _y=j; 
      var index = this.getAttribute("id").split('id')[1] - 100; 
      var pos=_x+":"+index; 
      _pos+=pos+"|"; 
     }); 
    }); 
    return _pos; 
} 
</script> 

还请注意,我是正常工作的jQuery版本需要所谓的接口另一个文件,该接口文件不符合新的jQuery版本的工作,所以也许是新的jQuery需要的东西其他添加为拖放工作?

+0

请参阅http://stackoverflow.com/questions/528241/how-do-i-run-different-versions-of-jquery-on-the-same-page/528251 – 2009-07-26 18:01:40

+1

是的,这是一个答案OP的问题?这是最后的手段,如果代码不能修复较新的版本... – jonwd7 2009-07-26 18:13:26

回答

1

既然你从来没有说过当你使用的是什么版本的JQuery,我们没有参考看看自那以后有多少变化。最好的办法是重写它,自从任何旧版本的JQuery以来都发生了一长串变化。

相关问题