Superfish打开一个选项“onInit”

时间:2009-12-09 20:11:03

标签: jquery superfish

在我的某些页面上,我希望Superfish(菜单插件)在页面打开时默认展开其中一个第一级选项。我将此选项ul归因于id =“me”,并尝试实现“onInit”函数,但它不起作用。有人可以看看吗?感谢。

jQuery(function(){
jQuery('ul.sf-menu').superfish({
    onInit: function(){$('#me',this).show();},
    });
});

2 个答案:

答案 0 :(得分:0)

你有任何javascript错误吗?

您发布的代码段可能存在问题:

    无论出于何种原因,
  • onInit都不会被召唤。查看alertconsole.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”。