回答
是的,如果您在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 –