javascript – 额外的$(…)调用不好?

前端之家收集整理的这篇文章主要介绍了javascript – 额外的$(…)调用不好?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
如果我有代码来拉下一个jQuery对象,然后再进行一些调用
$("a.postSyncLink").click(function () {
    var resultsTarget = $("span",$(link).parent().next());
    resultsTarget.html("<img style='position: absolute;' src='" + waitImgUrl + "'/><span>Sync in progress</span>");

    $.get($(this).attr("data-url"),function (returnVal) {
        resultsTarget.text(returnVal);
    });
});

随后(和不必要地)在jQuery函数中包装该对象,这被认为是不好的做法? jQuery是否优化了这样的多余调用

$("a.postSyncLink").click(function () {
    var resultsTarget = $("span",$(link).parent().next());
    $(resultsTarget).html("<img style='position: absolute;' src='" + waitImgUrl + "'/><span>Sync in progress</span>");

    $.get($(this).attr("data-url"),function (returnVal) {
        $(resultsTarget).text(returnVal);
    });
});

解决方法

如果它们不被用来克隆原始的jQuery对象,那么是的,它是坏的:

http://api.jquery.com/jQuery/#cloning-jquery-objects

传递给jQuery的jQuery对象被克隆,这是处理器时间,我不会浪费.

当存储对jQuery对象的引用时,我发现使用$前缀变量名有用,这有助于我记住它是一个jQuery对象,不需要重新包装:

$("a.postSyncLink").click(function () {
    var $resultsTarget = $("span",$(link).parent().next());
    $resultsTarget.html("<img style='position: absolute;' src='" + waitImgUrl + "'/><span>Sync in progress</span>");

    $.get($(this).attr("data-url"),function (returnVal) {
        $resultsTarget.text(returnVal);
    });
});

猜你在找的JavaScript相关文章