[英]Dynamically opening an array of jquery accordions
因此,我嘗試遍歷一類手風琴的jquery對象,檢查哪些對象是打開的,將它們添加到數組中,然后(在重置手風琴之后)重新打開之前打開的手風琴。 這似乎是一個非常簡單的問題,我對此表示歉意,但是在我的搜索中,這些問題似乎只是關於使用jquery進行迭代,而不是涉及遍歷jquery對象數組。 我真的找不到答案。
這是我目前擁有的,由於某種原因無法正常工作。 首先,創建一組已經打開的手風琴。
$(".accordionClass").each(
function(){
if($(this).accordion("option", "active") !== false) {
activeArray.push($(this));
}
}
);
這似乎有效。 至少,activeArray.length可提供正確數量的對象。
然后,在重新初始化之后,我嘗試在此數組中打開所有手風琴。
$.each(activeArray,
function(){
$(this).accordion({ active: 0 });
}
);
而且沒有骰子。 他們沒有打開。 有任何想法嗎?
問題解答
在所寫的問題中,您正在將jQuery對象( $(this)
)推入數組,讀取它們,然后將對象包裝在另一個jQuery選擇器中。
相反,您應該只推送本機DOM對象this
。
解決問題
此處的特定問題(在該答案的注釋中找到,而不是問題本身)是對象被破壞,然后(從相同的標記)創建了相似的對象。 這通常是不好的做法,但同時也帶來了以下問題:推入數組的this
引用的對象在被讀出時不再存在。
相反,您應該推送this.id
,然后使用jQuery通過$('#'+this)
重新選擇副本。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.