我在这里潜伏了很长时间,现在遇到了一个我真的无法解决的问题。
这是一个简单的#viewport
and .canvas
,它.canvas
是超宽的并且#viewport
有overflow:hidden
:
<div id="viewport">
<div class="canvas">
<a href="#" onclick="alert('event fired, boo.')">do not fire on mouse up</a>
</div>
</div>
使用我在这里的代码,我用 jQuery 创建了一个拖动滚动器,所以当您单击#viewport
并拖动它时,它会滚动内容,然后将其捕捉到最接近的 190 像素倍数(不相关,但那里的人可能想要我的代码)
$("html").mouseup(function(e) {
down = false;
$("#viewport").animate({scrollLeft:(190 * Math.round($("#viewport").scrollLeft() / 190))}, 150);
});
$("#viewport").mousedown(function(e) {
e.preventDefault();
down = true;
x = e.pageX;
left = $(this).stop().scrollLeft();
});
$(document).mousemove(function(e) {
if (down) {$("#viewport").scrollLeft(left - e.pageX + x);}
});
我想要做的就是开始拖动链接,当我使用鼠标时,我只需要不触发链接。
我尝试e.preventDefault()
过到处放置,但是当我松开鼠标时,我似乎无法阻止链接触发。