Событие переопределения в jQuery назначено в MooTools
Один из компонентов сайта загружает скрипт с этим.
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>
Но событие, определенное в первом коде, все равно запускается. Как мне переопределить событие и запустить другой код?
1 ответ
Так что это API: https://github.com/mootools/mootools-core/blob/master/Source/Element/Element.Event.js#L83-L101
mootools позволяет вам удалять события, которые вам не принадлежат, что не является хорошим дизайнерским решением и в настоящее время заменяется на простое - но оно хорошо работает в вашу пользу.
использовать либо
$$('.kqreply').removeEvents('click');
// or all mootools events...
$$('.kqreply').removeEvents();`
Вы можете получить доступ к отдельным функциям, которые вам не принадлежат, посредством хранения элементов.
el.retrieve('events')['keys']['click']
будет массивом всех привязанных fn к событию click.