我正在测试mmenu.js(http://mmenu.frebsite.nl)作为移动网站抽屉菜单的一个选项,它效果很好,但我遇到的一个问题是尝试更新后的选项值菜单已创建。具体来说,我希望默认情况下将“dragOpen”选项设置为“true”,但希望在具有水平滚动的元素触发触摸事件时禁用它。我如何以编程方式更新jquery.mmenu.js选项?
我有另一个处理幻灯片样式元素的水平触摸滑动的插件,所以我试图利用hammer.js,它已被mmenu.js用于dragOpen事件,并将“dragOpen” “假”时,感动的目标是幻灯片容器:
$(function() {
var navMenuLeft = $('nav#menu-left').mmenu({
position: 'left',
searchfield: true,
dragOpen: true,
threshold: 150
});
$('.swiper-container').hammer().on('touch', function(event){
// this triggers properly, but I seem unable to access the options for
// the mmenu object. If I log "navMenuLeft" it returns the #menu-left
// element rather than the mmenu object, so "navMenuLeft.opts" is undefined
console.log('touched swiper');
});
});
我试过的门槛越来越高了许多比什么是需要刷卡的幻灯片大,但对幻灯片最小刷卡仍是触发dragOpen 。我已经非常彻底地搜索了文档,觉得我只是缺少一些简单的东西。或者,也许而不是改变dragOpen选项,有一种方法可以设置要从拖动到打开菜单排除的元素?
我认为dragOpen对用户体验并不重要,作为最后的手段,它只是完全禁用它,但我希望找到一个解决方案,因为可能存在其他情况下以编程方式更新不同选项也是必要的。
感谢您的帮助!
它应该是'ev.srcEvent.stopPropagation();' – FidoBoy
还这样可以防止子元素上水平滚动,你想完全相反...那它呢? – FidoBoy