jquery - certain touch events cause multiple events, how can I limit to the desired event? -
so if tap or taphold works expected, if swipe should 2 events. swipe , swipedirection, tap event well. there way remove tap event if swipe or swipedirection occurs?
live example:
html:
<div data-role="page" id="home"> <div data-role="content"> <div id="display-event" class="add-border"> <p>tap, taphold (for 1 second), swipe, swiperight or swipeleft</p> </div> </div> </div>
js:
function bindevent(element) { element.bind('tap taphold swipe swiperight swipeleft', function(event, ui) { alert('event: '+event.type); }); } bindevent($('#display-event'));
related question: swipe event triggers tap event ipod touch
update: - http://jsfiddle.net/hjtaq/31/ (using jaspers method)
if want validate first event fires can set timeout , preventdefault()
rest of events fired:
function bindevent(element) { element.bind('tap taphold swipe swiperight swipeleft', function(event, ui) { if (event_ok == false) { event.preventdefault(); return false; } else { event_ok = false; settimeout(function () { event_ok = true; }, 500); alert('event: '+event.type); } }); } var event_ok = true; bindevent($('#display-event'));
Comments
Post a Comment