【发布时间】:2017-04-15 15:26:03
【问题描述】:
我想有条件地启用和禁用或更好地在我的菜单上添加和删除 jQuery 手风琴,是否可以在屏幕旋转或屏幕大小更改时添加或删除它?我试过了,但它似乎不起作用,手风琴仍在用于更改屏幕尺寸。
jQuery( document ).ready( function(){
apply_accordion();
jQuery(window).on("orientationchange",function(){
apply_accordion();
});
} );
function apply_accordion(){
if (jQuery(window).width() < 540) {
jQuery('.footer-area').accordion({
icons: { "header": "icon-large ui-icon-carat-1-s", "activeHeader": "icon-large ui-icon-caret-1-n" },
active: false,
autoHeight: false,
navigation: true,
collapsible: true,
});
} else {
//jQuery( '.footer-area' ).accordion( "disable" );
//jQuery( '.footer-area' ).accordion( "destroy" );
// jQuery( '.footer-area' ).accordion( "refresh" );
jQuery( '.footer-area' ).accordion( "destroy" ).accordion();
}
}
更新
如果其他部分将是,
} else {
jQuery( '.footer-area' ).accordion( "destroy" );
jQuery('.footer-area').accordion('option', 'active', 0);
}
当我开始从纵向移动到横向时,它正在工作,但反过来不起作用,这意味着当我从横向移动到纵向时它不起作用。并且还在控制台中给出错误不能call methods on accordion prior to initialization; attempted to call method 'destroy'
我想根据屏幕尺寸删除和添加手风琴。
注意:
jQuery 版本 1.11.4
检查 Techbreak 的答案 https://jsfiddle.net/voytfj2q/20/ 它似乎正在工作,但如果您检查控制台,它将生成“Uncaught Error: cannot call methods on accordion prior to initialization;尝试调用方法'destroy'”。在实际实现中,当我从横向移动到纵向时,它不起作用。
我还发布了一个解决方法,目前在我的实现中它对我有用,但我知道这只是一种解决方法。
这里是另一个fiddle,如果你慢慢增加和减少屏幕尺寸,你会注意到这个问题。
问题的屏幕截图,您可以注意到其中一些手风琴被禁用以增加尺寸,而有些则没有被禁用。
【问题讨论】:
-
你能添加工作小提琴链接吗?
-
参考这个stackoverflow.com/questions/23996726/… 我相信你最终会触发这两个事件。
-
@TechBreak 请查看我更新的代码,我已经尝试了一些东西,现在它只是在屏幕尺寸更改上,但仍然无法正常工作。你能提出一些建议吗?
-
我已经解决了您的问题,请参考以下答案。如果真的解决了您的问题,请接受:)
-
@PrafullaKumarSahu:这里解决了 2 个问题:jsfiddle.net/Lgx4es86/6
标签: javascript jquery accordion jquery-ui-accordion