我正在使用event.preventDefault()来防止将#锚定为URL的连接.我在点击的mousedown()和mouseup()部分预先形成事件,这就是为什么我不能使用点击.但是,当调用mouseup()或mousedown()方法时,event.preventDefault()不会阻止#连接到URL.我怎么能绕过这个?
最佳答案
如果您正在谈论单击链接,可能是因为没有默认行为来阻止mousedown和mouseup.
单击链接的默认行为需要在链接上组合mousedown和mouseup.如果你mousedown然后在鼠标前拖动链接,则不遵循链接.反之亦然.
只有当你mousedown时,mouseup才会激活默认行为.该事件由click事件表示.
编辑:我想我忘了回答这个问题.
你是如何解决它的?添加一个执行e.preventDefault()的click()事件处理程序.
$('a.myElement').click(function(e){e.preventDefault()});
如果您还想停止传播事件,并且如果您使用的是jQuery 1.4.3或更高版本,则可以执行以下操作:
$('a.myElement').bind('click',false);
从bind()
(docs)方法的文档:
Setting the third argument to false will attach a function that prevents the default action from occurring and stops the event from bubbling.
同样,它需要jQuery 1.4.3或更高版本.