我正在为我的应用程序使用jQuery mobile。
是否可以使用jQuery Mobile发布手势?如果用户放置手指并拖动屏幕 - 我是否可以使用JavaScript释放此手势,即使他将手指放在屏幕上?
例如 - 是否可以在1000毫秒后释放触摸移动,以便事件结束,例如$(this).touchend();
(就像我可以做$(this).click();
)?
修改
另一方面,也许有人对如何限制touch
/ touchmove
时间有任何其他想法?
答案 0 :(得分:5)
您可以致电$(this).trigger(eventName)
来触发任何活动
请参阅此方法的jQuery docs。
您的案例将是:$(this).trigger('touchend');
如果您想要在触摸1000ms后触发事件,可以考虑来自jQM的taphold事件?您可以通过设置$.event.special.tap.tapholdThreshold
来指定延迟。
答案 1 :(得分:1)
这样的事情有用吗?
JS
function bindEventTouch(element) {
element.bind('tap taphold swipe swiperight swipeleft', function(event, ui) {
console.log('Event: '+event.type);
if(event.type == 'taphold') {
console.log('Was Event taphold?: '+event.type);
element.trigger('touchend');
}
});
element.bind('touchend', function(event, ui) {
console.log('Triggered touchend Event: '+event.type);
});
}
$('.displayEvent').each(function(){
bindEventTouch($(this));
});
HTML
<div data-role="page" id="home">
<div data-role="content">
<div id="display-event-1" class="add-border displayEvent">
<p>Tap, TapHold (for 1 second), Swipe, SwipeRight or SwipeLeft</p>
</div>
<br />
<div id="display-event-2" class="add-border displayEvent">
<p>Tap, TapHold (for 1 second), Swipe, SwipeRight or SwipeLeft</p>
</div>
<br />
<div id="display-event-3" class="add-border displayEvent">
<p>Tap, TapHold (for 1 second), Swipe, SwipeRight or SwipeLeft</p>
</div>
</div>
</div>
CSS
.add-border {
border-style:solid;
border-width:1px;
width:100%;
text-align:center;
}