微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

原文地址:https://www.jb51.cc/js/151973.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐