防止特定元素上的JQuery Mobile滑动事件

mar*_*ani 6 jquery swipe jquery-mobile preventdefault

我正在使用jquery mobile,我需要防止特定元素上的滑动事件.需要这样做是因为我使用滑块,我不希望调用滑动事件.当用户使用滑块操作时,我希望它被阻止.我无法找到任何解决方案,所以我在这里寻求帮助.

这是我的javascript代码:

$( document ).on( "pageinit", "#demo-page", function() {
  $( document ).on( "swipeleft swiperight", "#demo-page", function( e ) {

  // We check if there is no open panel on the page because otherwise
  // a swipe to close the left panel would also open the right panel (and v.v.).
  // We do this by checking the data that the framework stores on the page element (panel: open).

   if ( $.mobile.activePage.jqmData( "panel" ) !== "open" ) {
     if ( e.type === "swipeleft"  ) {
        $( "#right-panel" ).panel( "open" );
      } else if ( e.type === "swiperight" ) {
           $( "#left-panel" ).panel( "open" );
      }
    }
  });
});
Run Code Online (Sandbox Code Playgroud)

谢谢.

Oma*_*mar 11

你需要同时使用stopPropagation();preventDefault();.

至于.selector,它可以是一个标签#ID的.class,例如[data-role=page]#PageID,div.ui-content...等

$(document).on('swipeleft swiperight', '.selector', function(event) {
 event.stopPropagation();
 event.preventDefault();
});
Run Code Online (Sandbox Code Playgroud)