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