jquery如何以更优化的方式重写此代码

时间:2011-01-28 01:53:39

标签: jquery optimization

优化以下内容的最佳方法是什么,所以我的代码更短。

$('#font').live('click', function(){
        var z = $(elmid).css('z-index');
        $('#editorWrapperOuter').css('z-index',(parseInt(z)+1));
        $('#fontTypeBox').show();
});
$('#fontSize').live('click', function(){
        var z = $(elmid).css('z-index');
        $('#editorWrapperOuter').css('z-index',(parseInt(z)+1));
        $('#fontSizeBox').show();
});
$('#fontHeader').live('click', function(){
        var z = $(elmid).css('z-index');
        $('#editorWrapperOuter').css('z-index',(parseInt(z)+1));
        $('#fontHeaderBox').show();
});

2 个答案:

答案 0 :(得分:4)

如果您可以将font ID更改为fontType,请执行以下操作:

$('#font,#fontSize,#fontHeader').live('click', function(){
        var z = $(elmid).css('z-index');
        $('#editorWrapperOuter').css('z-index',(parseInt(z)+1));
        $('#' + this.id + 'Box').show();
});

相同的代码,除了它使用multiple-selector(docs)同时选择所有三个。

如果您无法更改该ID,请执行以下操作:

$('#font,#fontSize,#fontHeader').live('click', function(){
        var theID = this.id === "font" ? "fontType" : this.id;
        var z = $(elmid).css('z-index');
        $('#editorWrapperOuter').css('z-index',(parseInt(z)+1));
        $('#' + theID + 'Box').show();
});

答案 1 :(得分:0)

将这部分代码抽象为单独的函数,

var foo = function() {
var z = $(elmid).css('z-index');
$('#editorWrapperOuter').css('z-index',(parseInt(z)+1));
$('#fontHeaderBox').show();
};

或创建这些对象的jQuery数组,如下所示: -

$('#font, #fontSize, #fontHeader').live('click', function(){
    var z = $(elmid).css('z-index');
    $('#editorWrapperOuter').css('z-index',(parseInt(z)+1));
    $('#fontHeaderBox').show();
});

希望语法正确。