我正在测试 mmenu.js ( http://mmenu.frebsite.nl ) 作为移动站点抽屉菜单的一个选项,它工作得很好,但我遇到的一个问题是尝试在菜单已创建。具体来说,我希望将“dragOpen”选项默认设置为“true”,但希望在具有水平滚动的元素上触发触摸事件时禁用它。
我有另一个插件处理幻灯片样式元素的水平触摸滑动,所以我试图利用hammer.js,它已经被mmenu.js用于dragOpen事件,并将“dragOpen”更改为“false”当触摸的目标是该幻灯片容器时:
$(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 对用户体验并不重要,作为最后的手段将完全禁用它,但我希望找到一个解决方案,因为可能还有其他情况需要以编程方式更新不同的选项。
谢谢你的帮助!