3

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

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.6 秒):

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();
}
4

0 回答 0