我正在尝试将 Superfish jQuery 插件与 Nathan Smith 的 adapt.js 片段结合起来,该片段根据浏览器宽度动态加载到不同的 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();
});
基本原理是更改 html 元素的 id resize
(介于pagesize_0
和pagesize_1
- 之间),并在 CSS 中使用后代选择器来禁用菜单,但这不起作用。我尝试重新运行sfMenu()
(resize
上面未显示代码),但它似乎没有检查更改的 DOM,意识到pagesize_1
不再存在,然后优雅地失败(我认为这会达到我想要的效果)。
有什么想法吗?理想情况下,我想破坏superfish
resize-to-mobile 上的功能,然后在屏幕再次变大时重新恢复它。