1

jqueryセレクターのセットを保存し、宣言時ではなく使用時に評価する最も合理的な方法を知りたいです。

現在、コントロールを外部ファイルに保存しており、コントロールが読み込まれた後に外部スクリプト ファイルを動的に読み込みます。

外部ファイル.js

var repo = {
    "grid_prevpage"     : $("button[data-qtip='Previous Page']")[0],
 };

このようにメインスクリプトでこれを正常に使用できます

mainscript.js

console.log(repo.grid_prevpage);

問題は、最初はすべてのコントロールが存在しないことです。これらはファイルがロードされたときに存在しなかったため、クエリの結果が得られたとしても未定義です。データ構造にセレクターの結果ではなくセレクターを含め、使用時にセレクターを評価したいと考えています。

パフォーマンスは問題ではありません。このアプリケーションには柔軟性と読みやすさが求められるため、簡潔なソリューションが推奨されます。

4

2 に答える 2

3

私はケビンBの答えが好きですが、ここに楽しい代替手段があります:

それらをクロージャーに保管してください。やや単純な構文という利点があり、Kevin のソリューションと同様に、要素が読み込まれるときに悪影響を受けません。

queries = {};
queries.grid_prevPage= function(){
    return $("button[data-qtip='Previous Page']");
}

console.log(queries.grid_prevPage());
于 2013-11-05T22:32:29.673 に答える
2

jquery オブジェクトを格納するのではなく、jquery セレクターを格納し、必要なときに評価します。

var repo = {
    "grid_prevpage" : "button[data-qtip='Previous Page']"
};
console.log($(repo.grid_prevpage));
于 2013-11-05T22:27:01.540 に答える