用jQuery.click()覆盖MooTools事件。

问题描述 投票:2回答:1
我具有无法更改的库函数,该函数使用MooTools附加事件。

$(document.body).addEvents({ "mousedown:relay(a.className)": function (a, b) { if (!a.rightClick) { //do something } return false });

我对MooTools不太熟悉,但是我已经尝试过一切可以通过jQuery.click()事件覆盖的方法。

我已经尝试将一个侦听器附加到.className,其父级(几个级别上),甚至是整个body;每次,我在function (e) { e.preventDefault() }事件中使用click

我一直认为preventDefault()将始终阻止与新触发的事件相关联的所有默认事件。

有人可以启发我为什么我的事件覆盖不起作用吗?

//编辑

我不想使用MooTools,因为将来我们可能会将所有内容移植到jQuery(或者至少不是MooTools)。如果没有其他方法,我想我将不得不这样做。

//编辑2

我以几种不同的方式尝试了jQuery.off(),包括$j('body').off('click mousedown','.className');,但仍然无法删除MooTools事件。

//编辑3

我认为最好不要与MooTools混为一谈;我已经更改了类名,因此MooTools不会做任何事情,只是复制了上面代码的//do something部分中发生的事情。

[由于MooTools事件监听器的末尾return false,我感觉对click事件无法做任何事情。

我具有无法更改的库函数,该函数使用MooTools附加事件。 $(document.body).addEvents({“ mousedown:relay(a.className)”:function(a,b){if(!a.rightClick){...

javascript jquery mootools jquery-events preventdefault
1个回答
1
投票
根据所使用的JQuery版本,您可以尝试off(JQuery 1.7或更高版本)或unbind删除MooTools事件处理程序。
© www.soinside.com 2019 - 2024. All rights reserved.