我想註冊一個保持事件,但「跳過」這個元素及其父母的「點擊」事件背後的邏輯......我該怎麼做?hammer.js - 如何在不傳播「click」事件的情況下注冊「hold」事件?
測試用例(請隨時到餐桌&編輯):http://codepen.io/muszek/pen/detAK
使用案例:用戶持有#foo盒開闢#bar對話框,該元素的選項。點擊任何地方(但在#bar上)關閉#bar。目前,持有#foo會打開#bar,但在釋放按鈕時立即關閉它。
我想註冊一個保持事件,但「跳過」這個元素及其父母的「點擊」事件背後的邏輯......我該怎麼做?hammer.js - 如何在不傳播「click」事件的情況下注冊「hold」事件?
測試用例(請隨時到餐桌&編輯):http://codepen.io/muszek/pen/detAK
使用案例:用戶持有#foo盒開闢#bar對話框,該元素的選項。點擊任何地方(但在#bar上)關閉#bar。目前,持有#foo會打開#bar,但在釋放按鈕時立即關閉它。
Hammer.js並不真正處理本地事件。所以在這裏,您應該聽取tap
事件而不是click
。
如果手勢是hold
,我不認爲觸發事件會觸發,但如果是,則只需撥打e.gesture.stopDetect();
以防止觸發多種手勢類型。 (例如,這通常用於防止release
事件在swipe
之後被觸發)
這對我不起作用,你可以發表小提琴嗎? – AKnox
您無法阻止觸發本機點擊。你應該做的是聽取'點擊'而不是'點擊'。 Hammer.js將hold定義爲一個持續超過一定時間的tap。
如果您根本沒有聽取'點擊',但想要阻止href或按鈕被解僱,請將其忘記。改變一個div的按鈕和一個普通文本的href,設置它們的樣式,讓它們看起來像以前一樣,現在聽它們的「輕擊」。
http://codepen.io/anon/pen/dPVXrP
父裏面裹<div>
。
http://codepen.io/anon/pen/iLFqK ?? ?? – Hackerman
@RobertRozas我認爲他們希望保持點擊功能的定期點擊,但不會在保持事件後觸發。 –
@Robert Rozas:Anthony Grist是對的,我希望這個用戶動作只觸發「保持」(而不是點擊),而我仍然希望在不是保持事件時發生點擊。 – muszek