在MooTools中指定的jQuery中重写事件

在MooTools中指定的jQuery中重写事件,jquery,mootools,mootools-events,Jquery,Mootools,Mootools Events,其中一个站点组件将使用此脚本加载脚本 window.addEvent('domready', function(){ $$('.kqreply').each(function(el){ el.addEvent('click', function(e){ e.stop(); // SOMETHING ELSE. }); }); 它加载在外部JS文件中。之后,我在头部加载声明 <script> j

其中一个站点组件将使用此脚本加载脚本

window.addEvent('domready', function(){ 
    $$('.kqreply').each(function(el){
        el.addEvent('click', function(e){
            e.stop();
            // SOMETHING ELSE.
    });
});
它加载在外部JS文件中。之后,我在头部加载声明

<script>
    jQuery(document).ready(function(){
        $$('.kqreply').each(function(el){
            el.removeEvent('click');
        });

        jQuery('.kqreply').unbind('click');

        jQuery('.kqreply').each(function(){
            jQuery(this).click(function(e){
                e.preventDefault();
                e.stopPropagation();
            });
        });
    });
</script>

jQuery(文档).ready(函数(){
$$('.kqreply')。每个(函数(el){
el.removeEvent(“点击”);
});
jQuery('.kqreply')。取消绑定('click');
jQuery('.kqreply')。每个(函数(){
jQuery(this)。单击(函数(e){
e、 预防默认值();
e、 停止传播();
});
});
});
但无论如何都会触发第一个代码中定义的事件。如何覆盖事件并运行不同的代码?

这就是api:

mootools允许您删除您不拥有的事件,这不是一个伟大的设计决策,目前正在更改为prime,但在这里对您有利

使用其中一个

$$('.kqreply').removeEvents('click'); 
// or all mootools events...
$$('.kqreply').removeEvents();`
您可以通过元素存储获得您不拥有的单个函数


el.retrieve('events')['keys']['click']
将是所有绑定到click事件的fn的数组

你有任何控制台错误吗?没有!如果我添加
console.log()
,我可以确认我的第二个代码在第一个之后。但当我clic时,首先执行click,然后执行我定义的click。但是我不能设置第二个参数,因为在另一个文件中有匿名函数。Sergey,你解决问题了吗?(你注意到removeEvents()必须是复数吗?)没有,我没有解决
removeEvents
也不起作用。您可以在我的代码示例中看到我有这样的代码。但它不会删除。@SergeyRomanov您有
el.removeEvent('click')-这是
el.removeEvents('click')
-复数。单个表单希望您将fn作为参数传递给它。我甚至给你发了源代码的链接。