簡體   English   中英

我想將一組jquery選擇器存儲為要延遲計算的數據結構

[英]I would like to store a set of jquery selectors as a data structure to be lazily evaluated

我想知道最合理的方法是存儲一組jquery選擇器,並在使用時(而不是在聲明時)對它們進行評估。

我目前將控件存儲在外部文件中,然后在控件加載后動態加載外部腳本文件。

externalfile.js

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

我可以像這樣在我的主腳本中成功使用它

mainscript.js

console.log(repo.grid_prevpage);

問題是所有控件最初都不存在。 因為它們在文件加載時不存在,所以即使查詢現在會有結果,它們也是未定義的。 我想讓我的數據結構包含選擇器而不是選擇器的結果,然后在使用時評估選擇器。

性能不是問題。 此應用程序需要靈活性和可讀性,因此首選簡潔的解決方案。

我喜歡Kevin B的回答,但這是一個有趣的選擇:

將它們存儲在封閉中。 它具有語法簡單一些的優勢,就像Kevin的解決方案不會受到元素加載時的負面影響。

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

console.log(queries.grid_prevPage());

而不是存儲一個jquery對象,而是存儲jquery選擇器,然后在需要時對其進行評估。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM