簡體   English   中英

動態打開一個jQuery手風琴數組

[英]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.

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