jQuery 1.5.0到1.5.1打破了以前的脚本

时间:2011-09-27 02:26:57

标签: jquery

我需要更新我的jQuery库以获取IE9与< = v1.5.0的一些错误。将库升级到1.5.1+(即使是当前的1.6.4)会破坏我在页面上的一些脚本,但是......(当然,修复一个问题,导致另一个问题)......

该脚本允许用户添加和减去一组输入框(因此,如果他们想要输入单个行项目,他们只会这样做......但是他们可以添加无限量的其他行项目。) / p>

//ADDS ANOTHER USER
$(".add-user").click(function() {
    onemore = $("#userSelectBoxes").clone();
    onemore.find(":input").each(function() {
        $(this).val("");
    });

    $("#user_block > #userSelectBoxes:last").after(onemore);
    set_add_del();
    return false;
});

$(".removeable").click(function() {
    $(this).parent().remove();
    set_add_del();
    return false;
});

function set_add_del() {
    $('.remove_cat').show();
    $('.add_cat').hide();
    $('.add_cat:last').show();
    $("#user_block > #userSelectBoxes:only-child > .remove_cat").hide();
}

HTML中的添加和删除按钮如下(并且它们基本上只添加了另一个输入字段的DIV):

<a href="#" class="remove_cat removeable">-</a>
<a href="#" class="add_cat add-user">+</a>

所以使用1.5.0 - 这将正常工作,让我点击+或 - 无限次,并始终运行。使用1.5.1+,我可以单击+ ONCE,然后没有其他工作(添加或删除)。

有什么想法吗?希望我把所有需要的东西都包括在内......

更新9/27/11 @美国东部时间下午5:05 我按照下面评论中的建议。没运气。它实际上表现完全一样......

我应该注意到,当我第二次点击时,它不仅没有用(正如我之前所说的那样),而且还会让我重新回到屏幕顶部。

这是最新的代码......

$(".add-user").click(function(){
                onemore = $(".userSelectBoxes").first().clone();                

                onemore.find(":input").each(function(){
                    $(this).val("");
                });

                $("#user_block > .userSelectBoxes:last").after(onemore);
                set_add_del();

                return false;
            });

            $(".removeable").click(function(){
                $(this).parent().remove();
                set_add_del();
                return false;
            });

            function set_add_del(){
            $('.remove_cat').show();
            $('.add_cat').hide();
            $('.add_cat:last').show();
            $("#user_block > .userSelectBoxes:only-child > .remove_cat").hide();
            }

1 个答案:

答案 0 :(得分:1)

您可以在页面上使用两个不同版本的jQuery。加载库的第二个版本后,您需要调用.noConflict()。这会将$对象的值重置为库的第一个版本。

Documentation

<script type="text/javascript" src="jquery.1.5.0.js"></script>
<script type="text/javascript" src="jquery.1.5.1.js"></script>
<script type="text/javascript">
    $.noConflict();

    //'$' now refers to 1.5.0
    //'jquery' now refers to 1.5.1
</script>