回答
是的,如果您在mouseup處理程序中使用return false;
,應該可以,因爲onclick在mousedown和mouseup發生後被觸發。這在常規javascript中是可行的,所以它也應該可以用於jquery事件處理程序。
編輯:
從事件處理程序返回一個布爾值實際上應該夠了事件的消耗。其中,事件是事件處理程序接收參數
event.stopPropagation();
:但是,因爲這是非常片狀跨瀏覽器,你應該使用功能手動取消事件冒泡。
我只是試過在jsfiddle,它似乎並沒有工作。 .. –
已經嘗試過,它似乎也沒有工作 – Elliot
如果兩個事件在同一元素上觸發,則此方法可能存在問題。你能準確地告訴我你正在努力完成什麼,然後我可以提供一種解決方法。 – chucktator
在Chrome和Internet Explorer中,不是Firefox,但在mousedown或mouseup時分離和重新附加元素將會阻止點擊事件被觸發。在Internet Explorer中,這個技巧並沒有引起雙擊(在Chrome中它的確如此)。
但我不會依賴這種奇怪的行爲,誰知道它是否會在某些時候不會改變。此外,請注意,分離和重新附加也會對分離元素的子項產生負面影響(iframe重新加載,文件字段重置,...)。
有一種尷尬的做法,就是在mousedown時禁用按鈕,並在短時間後啓用它,例如100ms。如果mouseup在這段時間發生,點擊將不會被觸發。
$('#btn').on('click', function() {
alert('clicked')
});
$('#btn').on('mousedown', function() {
var btn = $(this);
btn.attr('disabled', 'disabled');
setTimeout(function() { btn.removeAttr('disabled'); }, 100);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<body>
<button id='btn'>Click me</button>
</body>
- 1. 點擊事件後mousedown和mouseup事件不會發生
- 2. MouseDown或MouseUp事件?
- 3. Javascript mouseup和mousedown事件
- 4. jquery點擊事件防止
- 5. 防止點擊事件jquery
- 6. 爲什麼點擊事件不能通過停止mousedown/mouseup來停止?
- 7. 當mousedown和mouseup事件不等於點擊時
- 8. 防止在MouseDown後發生MouseUp/MouseClick
- 9. 處理事件mouseDown和mouseUp在Cocoa
- 10. Openlayers 3中的Mousedown/Mouseup事件
- 11. MouseDown/MouseLeftButtonDown事件不會觸發,MouseUp是?
- 12. JavaScript mousedown和mouseup事件衝突
- 13. mousedown之後,但在mouseup事件之前,我可以點擊onclick嗎?
- 14. mouseup,點擊事件和DOM操作
- 15. 防止點擊事件兩秒鐘
- 16. 防止點擊進入事件的JavaScript
- 17. 防止在UITextView上點擊事件
- 18. 點擊事件防止鼠標觸發
- 19. 防止點擊事件影響父jQuery
- 20. 如何防止點擊事件?
- 21. 防止默認點擊事件
- 22. 添加防止默認點擊事件?
- 23. 防止默認的點擊事件(WinAPI)
- 24. 區分點擊vs mousedown/mouseup
- 25. 區分mouseup mousedown和點擊
- 26. 如何通過javascript單擊鏈接時觸發mouseup/mousedown事件
- 27. mouseDown事件沒有顯示點擊
- 28. 點擊事件不起作用,但mousedown
- 29. 只啓用mouseup事件內部的點擊事件jquery
- 30. 動態雪碧觸摸事件防止點擊事件
我真的不明白,而是一個'mousedown'後跟一個'mouseup'將是一次點擊,只是有一個點擊一次的工作,還有的'一個( )'方法? – adeneo
這可能會幫助你http://stackoverflow.com/questions/8875070/stopping-propagation-of-mousedown-mouseup-from-a-click-handler –