我在我的网站上使用了两个手风琴。一个是JqueryUI,另一个在这里:
http://www.adipalaz.com/experiments/jquery/nested_accordion.html
现在的问题是他们都使用.accordion初始化手风琴。在这种情况下,只有一个会起作用。
有什么方法可以解决这个功能命名问题吗?
要初始化Jquery-UI我正在使用它:
$( ".jquery-ui-accordion" ).accordion();
初始化另一个(嵌套手风琴)我正在使用它:
$("html").addClass("js");
$.fn.accordion.defaults.container = false;
$(function() {
$("#acc3").accordion({initShow : "#current"});
$("#acc1").accordion({
el: ".h",
head: "h4, h5",
next: "div",
initShow : "div.outer:eq(1)"
});
$("#acc2").accordion({
obj: "div",
wrapper: "div",
el: ".h",
head: "h4, h5",
next: "div",
showMethod: "slideFadeDown",
hideMethod: "slideFadeUp",
initShow : "div.shown",
elToWrap: "sup, img"
});
$("html").removeClass("js");
});
});
请注意,他们都使用.accordion()
功能。
答案 0 :(得分:2)
在jQuery UIs javascript include之后和其他手风琴javascript包括之前放置此代码:
jQuery.fn.myCustomAccordion = jQuery.fn.accordion;
delete $.fn.accordion;
然后你可以使用两种手风琴,例如:
// jQuery accordion
$( ".jquery-ui-accordion" ).myCustomAccordion();
// "Other accordion"
$("#acc3").accordion({initShow : "#current"});
...
答案 1 :(得分:1)
如果它们都被命名为.accordion
,那么你是说CSS类名被用作选择器,对吗?因此,我建议您使用每个类名旁边的唯一id
来区分这两个.accordion
。但是没有代码示例,很难进一步帮助。
答案 2 :(得分:0)
如果您指的是功能名称,您可以简单地卷起袖子并在其中一个源代码文件中重命名该功能。
或者你可以不使用两个做同样事情的插件......
更新:我对你现在要做的事情有了更好的了解。我使用jquery.collapsible-menus.js完全相同的事情。它使用列表而不是div,但它很容易上手。