如果我有提取 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 - 额外的 $(...) 电话不好吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8394215/