当使用jQuery的mousedown和mouseup方法时,我怎么能使用event.preventDefault()?

时间:2011-01-29 23:03:55

标签: javascript jquery javascript-events

我正在使用event.preventDefault()来阻止将#连接到网址的锚点的href。我在点击的mousedown()和mouseup()部分预先形成事件,这就是为什么我不能使用点击。但是event.preventDefault()在阻止mouseup()或mousedown()方法时不会阻止#到URL的连接。我怎么能绕过这个?

1 个答案:

答案 0 :(得分:12)

如果您正在谈论点击链接,可能是因为没有默认行为可以阻止mousedownmouseup

点击链接的默认行为需要链接上mousedownmouseup的组合。如果您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); 或更晚。