Swipe、swipeleft、swiperight 事件不会在图像上触发

Posted

技术标签:

【中文标题】Swipe、swipeleft、swiperight 事件不会在图像上触发【英文标题】:Swipe, swipeleft, swiperight events do not trigger on image 【发布时间】:2013-03-14 16:34:46 【问题描述】:

我想将 jQuery mobile 的 swiperight event 与图像结合使用,但这似乎不起作用。

html

<div id="one"><img src="http://jquerymobile.com/wp-content/uploads/2012/09/jquery-mobile-logo-03.png"/></div>
<div id="two">works</div>

JS:

$("#one").on("swiperight", function() 
    alert("does not work");
);
$("#two").on("swiperight", function() 
    alert("works");
);

JSFiddle

【问题讨论】:

【参考方案1】:

我很确定只有桌面浏览器有这个问题,因为移动浏览器通常不会在滑动时拖动图像。

建议的解决方案here 防止在所有浏览器中拖动您的图像:

$('img').on('dragstart', function(event) 
    event.preventDefault();
);

这是你的新工作小提琴:http://jsfiddle.net/4CbEQ/1/

【讨论】:

【参考方案2】:

您需要防止图像拖动,这是一个工作示例:http://jsfiddle.net/Gajotres/SgUZK/

$(document).on('pagebeforeshow', '#index', function()   
    $('img').on('dragstart', function(event)  event.preventDefault(); );

    $("#one").on("swiperight", function() 
        alert("does not work");
    );
    $("#two").on("swiperight", function() 
        alert("works");
    );
);

【讨论】:

以上是关于Swipe、swipeleft、swiperight 事件不会在图像上触发的主要内容,如果未能解决你的问题,请参考以下文章

Jquery Mobile Swipe 事件导致输入中的文本不可拖动

zepto.js的touch模块

如何在 iPad 上通过滚动使工作 jquery “滑动”?

Zepto.js touch,tap增加 touch模块深入分析

Angular 2 RC 2 使用移动手势(滑动、捏合、旋转)

jQuery Mobile:Swipeleft/Swiperight 正在跳跃