我正在使用这里的{jQuery手风琴菜单jQuery Vertical Accordion Menu Plugin。该插件运行良好,没有太多定制。我真正想要的是这个插件提供的功能是页面刷新后的持久菜单状态。这个插件使用cookie来实现这一目标。关于问题...
如果您在手风琴菜单外单击,则仍会保持状态。我想在折叠手风琴菜单之外找到一种折叠整个菜单的方法。
当window.location等于某个URL时,我的第一个倾向是找到一些方法来删除或重置状态保存cookie中的数据。 (目前我很高兴如果返回主页时菜单完全崩溃了。)
我认为最好的解决方案是一些jQuery,如果点击#Accordion-Navigation外部点击它会重置cookie或折叠菜单。
我对任何事都持开放态度。
我尝试了以下但没有运气。
jQuery(document).ready(function(jQuery){
var siteurl = "http://myhomepageurl.com/index.php";
if (window.location.href == siteurl) {
jQuery.cookie('dcjq-accordion-1', null, { path: '/'});
}
});
对于更优雅的解决方案的任何建议将不胜感激!感谢您抽出宝贵的时间提前看看!
答案 0 :(得分:0)
有一个技巧可以做到这一点,只需在你的html和body元素上绑定一个事件处理程序。 如果单击手风琴,则会停止传播,否则会折叠手风琴。
$(function () {
$('html').on('click', collapseAccordion);
$('body')
.on('click','.accordion', function (e) { e.stopPropagation() });
});
你应该创建一个函数collapseAccordion
,通过api调用折叠手风琴。
答案 1 :(得分:0)
$(function () {
$('body').mousedown(function (e) {
if($(e.target).closest('.accordion').length != 1){
//click was outside accordion,
// so close it
}
});