为弹出窗口优化jquery、html和css代码

为弹出窗口优化jquery、html和css代码,jquery,html,css,Jquery,Html,Css,我已经为弹出窗口编写了jquery代码,但问题是我想优化jquery代码。您能告诉我如何优化它以在浏览器中获得更好的结果吗 如果你也告诉我html和css,那就太好了 我在下面提供jquery代码 // locale selector actions $('#region-picker').click(function(){ if ($("#locale-select").is(":visible")) return closeSelector('slide');

我已经为弹出窗口编写了jquery代码,但问题是我想优化jquery代码。您能告诉我如何优化它以在浏览器中获得更好的结果吗

如果你也告诉我html和css,那就太好了

我在下面提供jquery代码

    // locale selector actions
    $('#region-picker').click(function(){
        if ($("#locale-select").is(":visible")) return closeSelector('slide');
        var foot_height = $('#footer').innerHeight();
        var foot_height_css = foot_height-1;
        var select_position = '-=' + (Number(700)+18);
        console.log("hallo"+select_position);
        var $selector = $('#locale-select');
        $('#locale_pop').fadeOut();
        $selector.css({top:foot_height_css});
        $selector.fadeIn(function(){
            $(this).addClass('open');
            $(this).animate({top:select_position}, 1000);
            });
    });
    $('#select-tab').click(function(e){
        e.stopPropagation()
        closeSelector('slide');
        });
    // don't hide when clicked within the box
    $('#locale-select').click(function(e){
        e.stopPropagation();
    });
    $(document).click(function(){ 
        if ($('#locale-select').hasClass('open')) {
            closeSelector('disappear');
        }
    });

    $('.locale-link').click(function(){
        //var $clicked = $(this); //"$(this)" and "this" is the clicked span
        $(".locale-select-lable").html($(this).html());
        //search for "marginXXXXX"
        var flags = $(this).attr("class").match(/(margin\w+)\s/g);
        //create new class; add matching value if found
        var flagClass = "tk-museo-sans locale-select-lable" + (flags.length ? " " + flags[0] : "");
        //set new class definition
        $(".locale-select-lable").attr("class", flagClass);

        closeSelector('disappear');

        //if ($("#locale-select").is(":visible")) return closeSelector('slide');
       /*         
       // var desired_locale = $(this).attr('rel');
       // createCookie('desired-locale',desired_locale,360);
       // createCookie('buy_flow_locale',desired_locale,360);
        //closeSelector('disappear');
        */
    });  /* CORRECTED */

    $('#locale_pop a.close').click(function(){
        var show_blip_count = readCookie('show_blip_count');
        if (!show_blip_count) {
            createCookie('show_blip_count',3,360);
        }
        else if (show_blip_count < 3 ) {
            eraseCookie('show_blip_count');
            createCookie('show_blip_count',3,360);
        }
        $('#locale_pop').slideUp();
        return false;
    }); 

function closeSelector(hide_type){
var foot_height = $('#footer').innerHeight();
var select_position = '+=' + (Number(400)+20);
if (hide_type == 'slide') {
$('#locale-select').animate({top:select_position}, 1000, function(){
$(this).removeClass('open');
$(this).fadeOut()
});
}
else if (hide_type == 'disappear'){
$('#locale-select').fadeOut('fast');
$('#locale-select').removeClass('open');
}
}
//区域设置选择器操作
$(“#区域选择器”)。单击(函数(){
如果($(“#locale select”).is(“:visible”))返回closeSelector('slide');
var foot_height=$('#footer')。innerHeight();
var foot_height_css=foot_height-1;
变量选择位置='-='+(数字(700)+18);
控制台日志(“hallo”+选择位置);
变量$selector=$(“#区域设置选择”);
$('#locale_pop').fadeOut();
$selector.css({top:foot\u height\u css});
$selector.fadeIn(函数(){
$(this.addClass('open');
$(this).animate({top:select_position},1000);
});
});
$(“#选择选项卡”)。单击(函数(e){
e、 停止传播()
关闭选择器(“滑动”);
});
//在框中单击时不隐藏
$(“#区域设置选择”)。单击(函数(e){
e、 停止传播();
});
$(文档)。单击(函数(){
if($('#locale select').hasClass('open')){
关闭选择器(“消失”);
}
});
$('.locale-link')。单击(函数(){
//var$clicked=$(this);/“$(this)”和“this”是单击的范围
$(“.locale select lable”).html($(this.html());
//搜索“marginXXXXX”
var flags=$(this.attr(“class”).match(/(margin\w+)\s/g);
//创建新类;如果找到,则添加匹配值
var flagClass=“tk museo sans locale select lable”+(flags.length?”“+flags[0]:”);
//设置新的类定义
$(“.locale select lable”).attr(“class”,flagClass);
关闭选择器(“消失”);
//如果($(“#locale select”).is(“:visible”))返回closeSelector('slide');
/*         
//var desired_locale=$(this.attr('rel');
//createCookie(“所需语言环境”,所需语言环境,360);
//createCookie('buy_flow_locale',所需的_locale,360);
//关闭选择器(“消失”);
*/
});  /* 纠正*/
$('#locale_pop a.close')。单击(函数(){
var show_blip_count=readCookie(“show_blip_count”);
如果(!显示光点计数){
createCookie('show_blip_count',3360);
}
否则如果(显示光点计数<3){
擦除Cookie(“显示闪烁计数”);
createCookie('show_blip_count',3360);
}
$('#locale_pop')。slideUp();
返回false;
}); 
函数关闭选择器(隐藏类型){
var foot_height=$('#footer')。innerHeight();
变量选择位置='+='+(数字(400)+20);
如果(隐藏类型=='幻灯片'){
$(“#区域设置选择”)。设置动画({top:select_position},1000,function(){
$(this.removeClass('open');
$(此).fadeOut()
});
}
else if(hide_type==“消失”){
$(“#区域设置选择”).fadeOut('fast');
$(“#区域设置选择”).removeClass('open');
}
}

通过谷歌搜索jquery最佳实践,可以很容易地找到大多数标准jquery优化。很多资源。这里有几位来自谷歌

特别是对于您的代码,我将使用
.on()
而不是
。单击
.locale链接
元素的
.on()
,并利用方法链接和缓存一些jquery对象。
希望这能有所帮助。

运行Firebug JS profiler,找出瓶颈……尽量避免使用类,如果可以的话,坚持使用ID。这样你的运气可能会更好