jQueryを使用しているかどうかに関係なく、必要に応じてDOM要素をキャッシュすることをお勧めします。
しかし、この質問は、これを支援するプラグインが必要かもしれないと私に考えさせました。探し回ったのですが見つかりませんでした。
だから私は本当に素早く書いた。これは遅延読み込みのjQueryセレクターです...
(function($){
var cachedObjects = new Array();
$.lazy = function(selector) {
if (typeof selector != "string" || arguments.length > 1)
return $.apply(this, arguments);
var o = cachedObjects[selector];
if (o == undefined)
{
o = $(selector);
cachedObjects[selector] = o;
}
return o;
};
})(jQuery);
あなたはそれをこのように使うでしょう...
$.lazy('.my-nav').show();
何か見落としがあったら教えてください。ただし、これは、選択している要素が静的であり、動的に追加または削除されない場合に使用すると便利だと思います。
アップデート
これをより効率的にするためにコードを変更しました。return $(selector)
そして、セレクターが文字列でない場合に行を追加しました。したがって、キャッシュはセレクターが文字列の場合にのみ機能します。
更新#2
これでreturn $.apply(this, arguments)
、jfriend00の提案に従って、単に文字列を渡すのではない場合になります。