我正在为我的应用程序使用 jQuery mobile。
是否可以使用 jQuery Mobile 释放手势?如果用户放置手指并拖动屏幕 - 我可以使用 JavaScript 释放此手势,即使他将手指留在屏幕上?
例如 - 是否可以在 1000 毫秒后释放触摸移动,以便事件结束,例如$(this).touchend();
(就像我可以做的那样$(this).click();
)?
编辑:
另一方面,也许有人对如何限制touch
/touchmove
时间有任何其他想法?
我正在为我的应用程序使用 jQuery mobile。
是否可以使用 jQuery Mobile 释放手势?如果用户放置手指并拖动屏幕 - 我可以使用 JavaScript 释放此手势,即使他将手指留在屏幕上?
例如 - 是否可以在 1000 毫秒后释放触摸移动,以便事件结束,例如$(this).touchend();
(就像我可以做的那样$(this).click();
)?
编辑:
另一方面,也许有人对如何限制touch
/touchmove
时间有任何其他想法?
$(this).trigger(eventName)
您可以通过调用See the jQuery docs on this method触发任何事件。
你的情况是:$(this).trigger('touchend');
如果您想要一个在触摸 1000 毫秒后触发的事件,也许可以考虑 jQM 的taphold事件?您可以通过设置来指定延迟$.event.special.tap.tapholdThreshold
。
这样的事情有用吗?
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;
}