1

我正在为我的应用程序使用 jQuery mobile。

是否可以使用 jQuery Mobile 释放手势?如果用户放置手指并拖动屏幕 - 我可以使用 JavaScript 释放此手势,即使他将手指留在屏幕上?

例如 - 是否可以在 1000 毫秒后释放触摸移动,以便事件结束,例如$(this).touchend();(就像我可以做的那样$(this).click();)?

编辑: 另一方面,也许有人对如何限制touch/touchmove时间有任何其他想法?

4

2 回答 2

5

$(this).trigger(eventName) 您可以通过调用See the jQuery docs on this method触发任何事件。

你的情况是:$(this).trigger('touchend');

如果您想要一个在触摸 1000 毫秒后触发的事件,也许可以考虑 jQM 的taphold事件?您可以通过设置来指定延迟$.event.special.tap.tapholdThreshold

于 2012-11-21T13:38:20.063 回答
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;
}​
于 2012-11-21T13:57:13.457 回答