2013-10-02 48 views
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); 
}); 

回答

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**替換爲標識要忽略的元素的內容。

+0

這完全解決了我的問題。非常感謝你! –

+0

不用擔心 - 很高興幫助:) – Archer

相關問題