【发布时间】:2011-10-08 13:32:23
【问题描述】:
我正在尝试将 Superfish jQuery 插件与 Nathan Smith 的 adapt.js sn-p 结合起来,它会根据浏览器宽度动态加载不同的 CSS 文件。我想在移动模式下禁用/替换/某些 Superfish 菜单,因为下拉菜单在那里没有任何意义。我试图检测更改并禁用菜单,但是当窗口再次调整宽度时我需要重新启用它。
这是我所拥有的:
function htmlId(i, width) {
document.documentElement.id = 'pagesize_' + i;
}
var ADAPT_CONFIG = {
path: '/css/',
dynamic: true,
callback: htmlId,
range: [
'0px to 760px = mobile.css',
'760px = 960_12.css'
]
};
function sfMenu() {
$("#pagesize_1 ul.sf-menu").superfish({
delay: 800,
animation: {opacity:'show'},
speed: 'fast',
autoArrows: true,
dropShadows: true
});
}
$(document).ready(function(){
sfMenu();
});
基本原理是更改resize 上的html 元素的id(在pagesize_0 和pagesize_1 之间——可行)并在CSS 中使用后代选择器来禁用菜单,但这不起作用。我尝试在resize 上重新运行sfMenu()(代码未在上面显示),但它似乎没有检查更改后的DOM,意识到pagesize_1 不再存在,然后优雅地失败(我认为这会达到我的效果)米之后)。
有什么想法吗?理想情况下,我想销毁 resize-to-mobile 上的superfish 功能,然后在屏幕再次变大时重新启用它。
【问题讨论】:
-
我尝试过使用 detach() 和 append() 但我没有运气 - 我无法让 appen() 正常工作。有人有什么想法吗?
标签: javascript jquery responsive-design superfish