0
我有一个div
包含一些span
按钮水平显示。有太多的按钮适合在屏幕上,所以我希望用户能够点击并拖动整行按钮。但是,如果行已被拖动,我不希望该按钮的mouseup
事件触发。jquery防止mouseup如果mousemove以前被称为
holder
只包含button
元素。以下是ASCII码表示:
-------------------------------
| btn | btn | btn | btn | btn |
-------------------------------
以下是代码设置。目前,该按钮上的mouseup
处理程序在持有者处理程序之前被调用(处理程序在冒泡阶段被调用),因此在持有者的mouseup
处理程序中调用event.preventPropagation()
没有任何帮助。
<div id="holder">
<span class="button"></span>
</div>
$('#holder').mousedown(function() {
$(document).mousemove(function() {
// scroll content of #holder
}).mouseup(function() {
// stop scrolling
$(document).unbind('mouseup').unbind('mousemove');
});
});
$('.button').mouseup(function() {
$('document').mousemove(function() {
// do some action here, but only if holder hasn't scrolled on mousedown
});
});
任何想法?
我认为有可能是一个更优雅的解决方案:)我当然会必须设置'滚动= FALSE'在文档mouseup处理程序... – Tim