将存储的选择器传递给功能 - 效率

时间:2012-10-18 19:14:34

标签: jquery-selectors

我将选择器存储在两个变量中。如果我在全局创建它们并在函数中使用,则操作持续时间约为0.2秒

window.$my = {
    nameEdit : $('#nameEdit'),
    nameError : $('#nameError')
};

function Validation() {
    console.profile();
    var result = true;
    if ($my.nameEdit.val() == '') {
        $my.nameEdit.addClass('error');
        $my.nameError.css({ 'display': 'block' });      
    }
    else {
        $my.nameEdit.removeClass('error');
        $my.nameError.css({'display':'none'});
    }
    console.profileEnd();
}

如果我在Validaton()中绑定另一个函数并尝试使用它们这个函数,它需要太长时间(约0.6s):

window.$my = {
    nameEdit : $('#nameEdit'),
    nameError : $('#nameError')
};

function Validation() {
    $my.nameEdit.blur(function (evt) { ValidateName(evt); });
}

function ValidateName(evt) {
    console.profile();
    if ($my.nameEdit.val() == '') {
        $my.nameEdit.addClass('error');
        $my.nameError.css({ 'display': 'block' });      
    }
    else {
        $my.nameEdit.removeClass('error');
        $my.nameError.css({'display':'none'});
    }
    console.profileEnd();
}

0 个答案:

没有答案