如果我有下拉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);
});
});
答案 0 :(得分:11)
如果它们没有用于克隆原始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);
});
});
答案 1 :(得分:2)
由于每次执行时都会创建新的jquery对象,因此会影响性能。
尽可能避免使用它。
只需创建jquery对象并使用它。