如何用純JS捕獲用戶的「tap」事件?不幸的是,我無法使用任何庫。用純JavaScript捕獲「tap」事件
回答
click
事件觸發鼠標點擊以及觸摸點擊。
當屏幕被觸摸時,觸發touchstart
事件。
當觸摸結束時觸發touchend
事件。如果阻止默認操作,則不會觸發click
事件。
這不是我的代碼,但我不記得我從哪裏得到它,成功使用。它使用jQuery,但沒有額外的庫或插件來處理Tap本身。
$.event.special.tap = {
setup: function(data, namespaces) {
var $elem = $(this);
$elem.bind('touchstart', $.event.special.tap.handler)
.bind('touchmove', $.event.special.tap.handler)
.bind('touchend', $.event.special.tap.handler);
},
teardown: function(namespaces) {
var $elem = $(this);
$elem.unbind('touchstart', $.event.special.tap.handler)
.unbind('touchmove', $.event.special.tap.handler)
.unbind('touchend', $.event.special.tap.handler);
},
handler: function(event) {
event.preventDefault();
var $elem = $(this);
$elem.data(event.type, 1);
if (event.type === 'touchend' && !$elem.data('touchmove')) {
event.type = 'tap';
$.event.handle.apply(this, arguments);
} else if ($elem.data('touchend')) {
$elem.removeData('touchstart touchmove touchend');
}
}
};
$('.thumb img').bind('tap', function() {
//bind tap event to an img tag with the class thumb
}
我將此項目用於iPad專用項目,因此可能需要調整才能適用於臺式機和平板電腦。
這段代碼也規避了使用常規點擊處理程序時遇到的點擊延遲 – Kayo
這不是純粹的JS,因爲它不會回答這個問題。 –
有touchstart
,touchend
和其他活動。您可以通過這種方式添加事件偵聽器爲他們:你可以找到關於MDN webstite原生DOM事件
var el = document.getElementById('test');
el.addEventListener('touchstart', touchHandler);
更多信息。
我自己寫了一個小小的腳本。它不是純JS,但對我來說工作得很好。 它可以防止在滾動上執行腳本,這意味着腳本只會觸發「tap」事件。
$(element)
.on('touchstart', function() {
$(this).data('moved', '0');
})
.on('touchmove', function() {
$(this).data('moved', '1');
})
.on('touchend', function() {
if($(this).data('moved') == 0){
// HERE YOUR CODE TO EXECUTE ON TAP-EVENT
}
});
這個問題很明確,關於「純JS」和「我不能使用任何庫」 – ByScripts
這在這裏幫助我... ... –
- 1. JavaScript捕獲onload&onunload事件
- 2. JavaScript + Chrome - 事件捕獲
- 3. 捕獲所有事件(javascript)
- 4. Map正在捕獲來自MapItemsControl元素的Tap事件
- 5. 使用javascript捕獲點擊事件
- 6. 是否有使用事件代表團的Javascript「tap」事件庫?
- 7. android AndEngine獲取Tap(點擊)事件?
- 8. 檢測事件捕獲支持javascript
- 9. 通過javascript捕獲URL更改事件
- 10. 捕獲粘貼事件/粘貼html - javascript
- 11. 在c#中捕獲javascript事件#
- 12. 在IE Mobile中捕獲javascript事件
- 13. UIButton tap後從UITextfield捕獲文本
- 14. 如何在純JavaScript中使用事件?
- 15. 用jquery捕獲事件
- 16. 捕獲MediaPlayerPlaying事件
- 17. 捕獲由事件
- 18. 捕獲Intent.ACTION_MEDIA_BUTTON事件
- 19. RAS事件捕獲
- 20. 捕獲AutoDiscoverComplete事件
- 21. Brightcove事件捕獲
- 22. 捕獲$ resource.ready事件
- 23. 捕獲Outlook事件
- 24. 使用純JavaScript在事件中獲取select元素值
- 25. 在Twitter上使用tap事件引導
- 26. 純擊替換捕獲組
- 27. Javascript - 通用Windows應用程序 - 捕獲關閉事件
- 28. 事件捕獲,事件冒泡和jQuery.on()
- 29. 事件捕獲vs事件冒泡
- 30. 純JavaScript觸發按鍵事件
爲什麼標記爲CSS? –
由於速度。抱歉。 –