我正在使用event.preventDefault()
来阻止将#
连接到网址的锚点的href。我在点击的mousedown()和mouseup()部分预先形成事件,这就是为什么我不能使用点击。但是event.preventDefault()
在阻止mouseup()或mousedown()方法时不会阻止#
到URL的连接。我怎么能绕过这个?
答案 0 :(得分:12)
如果您正在谈论点击链接,可能是因为没有默认行为可以阻止mousedown
和mouseup
。
点击链接的默认行为需要链接上mousedown
加mouseup
的组合。如果您mousedown
然后在mouseup
之前拖动链接,则不会跟踪该链接。反之亦然。
仅当您mousedown
时,mouseup
才会激活默认行为。该事件由click
事件表示。
编辑: 我想我忘了回答这个问题了。
你如何解决这个问题?添加click()
的{{1}}事件处理程序。
e.preventDefault()
如果您还想停止传播事件,并且如果您使用的是jQuery 1.4.3或更高版本,则可以执行以下操作:
$('a.myElement').click(function(e){e.preventDefault()});
来自bind()
(docs)方法的文档:
将第三个参数设置为false将附加一个阻止发生默认操作的函数,并阻止事件冒泡。
同样,它需要$('a.myElement').bind('click',false);
或更晚。