其中一个站点组件加载脚本。
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>
但是无论如何都会触发第一个代码中定义的事件。如何覆盖事件并运行不同的代码?
所以这是API:https://github.com/mootools/mootools-core/blob/master/Source/Element/Element.Event.js#L83-L101
Mootools允许您删除不属于您的事件,这不是一个很好的设计决策,目前正在更改为Prime-但在这里效果很好。
使用任一
$$('.kqreply').removeEvents('click');
// or all mootools events...
$$('.kqreply').removeEvents();`
您可以通过元素存储访问您不拥有的各个函数。
el.retrieve('events')['keys']['click']
将是与单击事件绑定的所有 fn 的数组。