所以我试图迭代一类手风琴jquery对象,检查哪些是开放的,将它们添加到数组中,然后(在重置手风琴之后)重新打开之前打开的手风琴。这似乎是一个非常简单的问题,我道歉,但在我的搜索中,似乎问题只是一般使用jquery迭代,而不是迭代jquery对象的数组。我真的找不到答案。
这是我目前所拥有的,由于某种原因不起作用。首先,创建已经打开的手风琴阵列。
$(".accordionClass").each(
function(){
if($(this).accordion("option", "active") !== false) {
activeArray.push($(this));
}
}
);
这似乎有效。至少,activeArray.length给出正确数量的对象。
然后,我尝试在重新初始化之后打开这个数组中的所有手风琴。
$.each(activeArray,
function(){
$(this).accordion({ active: 0 });
}
);
没有骰子。他们不开放。有什么想法吗?
答案 0 :(得分:0)
问题解决方案
在编写的问题中,您将jQuery对象($(this)
)推入到数组中,将其读出,然后将对象包装在另一个jQuery选择器中。
您应该只推送原生DOM对象this
。
问题解决方案
这里的具体问题(在这个答案的评论中找到,而不是问题本身)是对象被销毁,然后创建一个类似的对象(来自相同的标记)。这通常是不好的做法,但它也会导致问题出现问题:推送到数组中的this
引用的对象在读出时不再存在。
相反,您应该推送this.id
,然后使用jQuery重新选择$('#'+this)
的副本。