我正在尝试使https://ionianbookstore.com/的这个下拉菜单保持活动点击子菜单或刷新,但它不起作用。
https://stackoverflow.com/questions/20396116/keeping-a-jquery-menu-open-with-cookies#= 这一个帮助我,将代码更改为我的插件代码,但仍然无法正常工作,我知道我没有使它正确,所以这就是为什么我打开一个新的问题,以便有人帮助:)
插件的.js就是这个:
!function(e){function n(e){e.hasClass("toggle__open")?e.removeClass("toggle__open"):e.addClass("toggle__open"),e.parent(".link__wrap").parent(".menu-item").children(".sub-menu").slideToggle("fast")}e(document).on("click",".easy-sidebar-menu-widget-toggler",function(t){n(e(this)),t.preventDefault(),t.stopPropagation()})}(jQuery);
这是另一个问题的解决方案(这个我曾经使它工作,但我没有做到) http://jsfiddle.net/pHgB7/2/
感谢帮助,甚至阅读:)
答案 0 :(得分:0)
尝试停止侧边菜单中点击子项的传播。
$("#yoursidemenu li a")
.on('click', function (e) {
e.stopPropagation();
});
答案 1 :(得分:0)
根据我的理解,你所要做的就是在要切换的easy-sidebar-menu-widget-toggler
元素上触发下面的内容。
e.addClass("toggle__open"), e.parent(".link__wrap").parent(".menu-item").children(".sub-menu").slideToggle("fast")
因此,您可以在元素上添加属性,然后设置一个cookie,以便知道每次点击刷新后您要打开哪个
<a href="#" class="easy-sidebar-menu-widget-toggler" data-toggle="history"><li>...</li></a>
$(function(){
$('.easy-sidebar-menu-widget-toggler').on('click',function(){
//Setup the cookie on click here
$.cookies('myToggle',$(this).data('history'));
});
//then on the init of the page you can do
//a check and if the cookie exists then toggle fine the
//a href and then toggle it.
if($.cookies('myToggle'))
{
var toToogle = $.cookies('myToggle');
var aToToggle = $('body').find('a[data-toggle="'+ toToggle + '"');
aToToggle.addClass('toggle__open');
aToToggle.parent(".link__wrap").parent(".menu-item").children(".sub-menu").slideToggle("fast");
}
});
不要忘记,如果用户点击没有切换器的菜单,您需要实现一些逻辑来删除cookie。