0

我正在使用 phonegap 和 Zepto 开发一个移动应用程序,但我正在努力解决一个问题。我在左右两侧有侧边菜单,通过滑动显示。但是,在我的主容器中,我有一个可以滑动的小滑块。我的问题是,一旦我完成滑动滑块容器,就会调用侧边菜单的滑动事件并显示菜单。有办法防止这种行为吗?

代码:

Zepto(document).on('swipeRight', function(){
    if($('#search-container').hasClass('back-left'))
        handleSideSearchMenu();
    else if(!$(showLeft).hasClass('active'))
        MyObj.handleSideMenu(showLeft);
}).on('swipeLeft', function(){  
    if($('#search-container').hasClass('to-right') && !$(showLeft).hasClass('active'))
        handleSideSearchMenu();
    else if($(showLeft).hasClass('active'))
        MyObj.handleSideMenu(showLeft);
});
4

1 回答 1

1

你可以这样做...

Zepto(document).on('swipeRight', function(e) {

    if ($(e.target).is(**slider-container**)) return;

    if($('#search-container').hasClass('back-left'))
        handleSideSearchMenu();
    else if(!$(showLeft).hasClass('active'))
        MyObj.handleSideMenu(showLeft);

}).on('swipeLeft', function(e){  

    if ($(e.target).is(**slider-container**)) return;

    if($('#search-container').hasClass('to-right') && !$(showLeft).hasClass('active'))
        handleSideSearchMenu();
    else if($(showLeft).hasClass('active'))
        MyObj.handleSideMenu(showLeft);
});

在上面的代码中,e.target是触发事件的 DOM 元素,因此您可以使用它来检查要忽略的元素。

没有看到标记,我无法提供更多帮助。您需要替换**slider-container**为标识要忽略的元素的内容。

于 2013-10-02T16:51:33.597 回答