在使用jQuery的mousedown和mouseup方法时,如何才能使.preventDefault()发生事件?

ldxq2e6h  于 2022-12-18  发布在  jQuery
关注(0)|答案(1)|浏览(117)

我正在使用event.preventDefault()来防止#的连接,#是指向URL的锚的href。我正在单击的mousedown()mouseup()部分上执行事件,这就是为什么我不能使用click。但是event.preventDefault()在调用mouseup()mousedown()方法时不防止#连接到URL。我该怎么解决这个问题?

jogvjijk

jogvjijk1#

如果您谈论的是单击链接,这可能是因为mousedownmouseup没有默认行为来防止。
点击链接的默认行为需要mousedownmouseup的组合。如果您先mousedown,然后再mouseup拖动链接,则不会跟随链接。反之亦然。
只有当你使用mousedown时,mouseup才是默认行为,这个事件由click事件表示。

**编辑:**我想我忘了回答这个问题。

如何解决这个问题?添加一个click()事件处理程序来执行e.preventDefault()

$('a.myElement').click(function(e){e.preventDefault()});

如果您还想停止事件的传播,并且使用的是jQuery 1.4.3或更高版本,可以执行以下操作:

$('a.myElement').bind('click',false);

来自bind()(docs)方法的文档:

将第三个参数设置为false将附加一个函数,该函数阻止默认操作发生并停止事件冒泡。
同样,它需要jQuery 1.4.3或更高版本。

相关问题