2009-07-26 77 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以來都發生了一長串變化。

相關問題