在我的某些页面上,我希望Superfish(菜单插件)在页面打开时默认展开其中一个第一级选项。我将此选项ul归因于id =“me”,并尝试实现“onInit”函数,但它不起作用。有人可以看看吗?感谢。
jQuery(function(){
jQuery('ul.sf-menu').superfish({
onInit: function(){$('#me',this).show();},
});
});
答案 0 :(得分:0)
你有任何javascript错误吗?
您发布的代码段可能存在问题:
onInit
都不会被召唤。查看alert
或console.log
this
中的onInit
不是DOMElement。它可能是一个jquery对象。查看console.log
加上,你有一个语法错误:对象文字中的最后一个属性不能跟逗号后面。
答案 1 :(得分:0)
好的,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');}
单词'hello'出现在mouseover而不是子菜单上 - 但是在mouseover上,而不是“onInit”。