繁体   English   中英

如何获得较旧的jQuery代码以与较新版本的jQuery一起使用?

[英]How can I get older jquery code to work with newer versions of jquery?

相关: 如何在同一页面上运行不同版本的jQuery?


我的页面使用了很多jquery,也有拖放操作,也可以将位置保存到mysql DB中。 我的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版本需要另一个名为interface的文件,该接口文件不能与新的jquery版本一起使用,因此也许新的jquery需要添加其他内容才能进行拖放工作?

由于您从未说过在创建JQuery时使用的是哪个版本,因此我们没有参考资料可以查看自那时以来实际发生了多少变化。 最好的选择就是重写它,自从任何旧版本的JQuery以来,已经发生了很长的更改。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM