Я столкнулся с проблемой удаления виджета аккордеона, когда размер окна превышает заданное значение.
Я использую jQuery 1.8.3 и пользовательский интерфейс jQuery 1.9.2.
Это мой код:
/*
* Detect browser size and add accordian on page (at load) if necessary
*/
$(document).ready(function() {
var window_width = $(window).width();
if (window_width <= 767){
$("div.innernav ul.menu").accordion({
header: '.separator',
animated: 'slide',
event: "click",
heightStyle: "content",
icons: { "header": false, "headerSelected": false } ,
collapsible: true,
active: false,
});
}
});
/*
* Detect browser size on resize and add/remove accordian
*/
$(window).resize(function() {
var wi = $(window).width();
if (wi <= 767){
$("div.innernav ul.menu").accordion({
header: '.separator',
animated: 'slide',
event: "click",
heightStyle: "content",
icons: { "header": false, "headerSelected": false } ,
collapsible: true,
active: false,
});
} else if (wi >= 768){
$("div.innernav ul.menu").accordion("destroy");
}
});
Код работает, и мой аккордеон активен только тогда, когда ширина окна меньше 768 пикселей, но я получаю:
Error: cannot call methods on accordion prior to initialisation; attempted to call method 'destroy'
Кажется, эта ошибка приводит к тому, что другой код, который у меня есть на странице, не работает, поэтому я мог удалить эту ошибку. Я новичок в javascript/jQuery, поэтому буду очень благодарен за помощь.
Большое спасибо!
} else if (wi >= 768 && $("div.innernav ul.menu .ui-accordion").length){
? (Я думаю, что$("div.innernav ul.menu .ui-accordion")
будет подходящим селектором для получения аккордеона, созданного$("div.innernav ul.menu").accordion(...)
.) - person Jeromy French   schedule 11.01.2013