禁用特定div上的滑动

有了这个jQuery Mobile 1.9.1代码,用户在向右或向左滑动时显示侧面板…

$(document).on("pageinit",".ui-page",function(){ var $page=$(this); $page.on("swipeleft swiperight",function(e){ if($page.jqmData("panel")!=="open"){ if(e.type==="swiperight"){ $page.find("#menu").panel("open"); }else if(e.type==="swipeleft"){ $page.find("#menu2").panel("open"); } } }); }); 

使用具有滑动function的图像滑块时,这会产生问题。 当我向右滑动时,滑块div内部会切换到下一张照片并打开面板…

我只是尝试这样做:

  $('#full-width-slider').swipe(function(e){ e.stopPropagation(); e.preventDefault(); }); 

但它根本不起作用。

有没有办法在div#full-width-slider中禁用jQuery Mobile原生幻灯片function?

提前致谢。

 .on('swipeleft swiperight', function(e){ 

而不是

 .swipe(function(e){ 

虽然我对这个答案没有100%的自信,但是感觉试验表明代码仍然存在问题,你可能需要对原始元素进行健全性检查,例如,

 if($.inArray('full-width-slider', $.trim($(e.target).prop('id')).split(' ')) > -1){ //full with slider is the target, so return out } 

我想你正在寻找这个:

 event.stopImmediatePropagation(); 

这应该可以阻止滑动冒泡。

你的代码

 $('#full-width-slider').swipe(function(e){ e.stopImmediatePropagation(); e.preventDefault(); });