将jQuery 1.4.3升级到jQuery 1.7.2时,多选菜单会中断

时间:2012-08-18 03:02:57

标签: javascript jquery-selectors jquery

我需要将我的应用程序中的jQuery库从1.4.3升级到1.7.2,但是我遇到了多选菜单的一些问题。我在不同的页面上遇到了一些不同的问题。在某些页面上,多选功能变为单选,而在其他页面上,当进入编辑模式时,值将丢失。

我一直在修改直播活动和不同的事件触发器,但无法弄清楚发生了什么。

我希望有人可以查看下面的代码,看看从jQuery 1.4.3升级到1.7.2时是否会出现任何错误......

谢谢!

fishMultiSelect_new: function()
    {
        $("select.multi").live('change',function(){

            var val = $("option:selected", this).val();

            if ($("option:selected", this).is(':disabled') == true) { this.selectedIndex=0; return false; }

            if(!val) return false;

            if(val.substr(0,3) !== 'zzz')
            {
                var text = $("option:selected", this).text();
                $(this).next("ul.multiselect").append('<li class="round label option"><p>'+text+'</p><span value="'+val+'" class="x">x</span></li>').show();
                // Disabled the selected option
                $("option:selected", this).attr("disabled",true).addClass('disabled');
            }
            this.selectedIndex=0;
            // Hack for Preparation on CRUDProduct
            var I = $(this).attr("name");
            if(I == 'preparation' && val == 5)
            {
                $("#cookingMethod-tr").show();
            }

        })
        $("ul.multiselect li.option span.x").live('click',function(){
            var value = $(this).attr("value");
            var text = $(this).prev().text();
            var S = $(this).parent().parent().prev("select.multi");
            $("option[value='"+value+"']", $(S)).removeAttr("disabled").removeClass('disabled');
            $(this).parent().remove();

            // Hack for Preparation on AddProduct
            if(S.attr("name") == 'preparation' && value == 5)
            {
                $("#cookingMethod-tr").hide();
                $("#cookingmethod").val("");
            }

        })
    }

0 个答案:

没有答案