在我的一些页面上,我希望 Superfish(菜单插件)在页面打开后默认展开其中一个第一级选项。我将此选项归因于 ul 一个 id="me",并尝试实现“onInit”功能,但它不起作用。有人可以看看吗?谢谢。
jQuery(function(){
jQuery('ul.sf-menu').superfish({
onInit: function(){$('#me',this).show();},
});
});
好的,CSS 部分很简单。它不使用任何“可见性”值,而是将框位置从“top:-999em”(隐藏)更改为“top:2.5em”(显示)。我为我创建了一个单独的类,它只是 Superfish“可显示”框的副本:
ul.open {
left: 0;
top: 2.5em;
z-index: 99;
}
现在,如果 JS 被禁用,但当 JS 被启用时,所有选项都会被折叠。这只是我这次尝试的众多变体之一:
onInit: function(){$('ul.open').addClass('ul.open');}
而且完全没有效果,就好像这个类不存在一样。
如果我尝试:
onInit: function(){$('ul.open').html('hello');}
“你好”这个词出现在鼠标悬停而不是子菜单上 - 但出现在鼠标悬停上,而不是“onInit”。
你有任何 javascript 错误吗?
您发布的代码段可能存在问题:
onInit
无论出于何种原因都不会被调用。检查alert
或console.log
this
inonInit
不是 DOMElement。它可能是一个 jquery 对象。检查console.log
另外,你有一个语法错误:对象文字中的最后一个属性不能跟逗号。