Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 20.02.2012, 00:39
Аватар для KOLANICH
Профессор
Отправить личное сообщение для KOLANICH Посмотреть профиль Найти все сообщения от KOLANICH
 
Регистрация: 22.11.2008
Сообщений: 277

перечислить и изменить Event Listnerы на элементе
как перечислить и изменить Event Listnerы на элементе?
Ответить с цитированием
  #2 (permalink)  
Старый 20.02.2012, 00:49
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

Interface EventListenerList не реализован в браузерах
Ответить с цитированием
  #3 (permalink)  
Старый 23.02.2012, 14:23
Аватар для KOLANICH
Профессор
Отправить личное сообщение для KOLANICH Посмотреть профиль Найти все сообщения от KOLANICH
 
Регистрация: 22.11.2008
Сообщений: 277

кажется были какие-то методы у узлов, возвращающие список event listenerов
Ответить с цитированием
  #4 (permalink)  
Старый 23.02.2012, 17:02
Аватар для Nekromancer
Профессор
Отправить личное сообщение для Nekromancer Посмотреть профиль Найти все сообщения от Nekromancer
 
Регистрация: 06.05.2009
Сообщений: 1,163

KOLANICH,
Та не было ничего. Просто перед добавлением сохраняйте их сами куда то, как это делаю библиотеки. Ну а потом удаляйте.
__________________
Нужно равняться на лучших, а не оправдываться за счёт худших.
Ответить с цитированием
  #5 (permalink)  
Старый 24.02.2012, 19:17
Аватар для KOLANICH
Профессор
Отправить личное сообщение для KOLANICH Посмотреть профиль Найти все сообщения от KOLANICH
 
Регистрация: 22.11.2008
Сообщений: 277

немного подумал, и понял, что нужно сделать, чтобы производительность не сильно страдала

Последний раз редактировалось KOLANICH, 24.02.2012 в 22:01.
Ответить с цитированием
  #6 (permalink)  
Старый 25.02.2012, 00:12
Аватар для KOLANICH
Профессор
Отправить личное сообщение для KOLANICH Посмотреть профиль Найти все сообщения от KOLANICH
 
Регистрация: 22.11.2008
Сообщений: 277

не работает...
if (!addEventListenerOriginal) {
	var addEventListenerOriginal = EventTarget.prototype.addEventListener;
	EventTarget.prototype.addEventListener = function (evt, cb, bub) {
		console.log(this, evt, cb, bub);
		
		addEventListenerOriginal.apply(this, arguments);
	}
}
document.body.addEventListener("contextmenu", console.info, true);//не как должно
EventTarget.prototype.addEventListener.call(document.body, "fuuu", console.info, true);//TypeError: addEventListenerOriginal is undefined


if (!addEventListenerOriginal) {
	var addEventListenerOriginal = HTMLElement.prototype.addEventListener;
	HTMLElement.prototype.addEventListener = function (evt, cb, bub) {
		console.log(this, evt, cb, bub);
		
		addEventListenerOriginal.apply(this, arguments);
	}
}
document.body.addEventListener("contextmenu", console.info, true);//работает не как должно
HTMLElement.prototype.addEventListener.call(document.body, "fuuu", console.info, true);//работает как должно
Ответить с цитированием
  #7 (permalink)  
Старый 25.02.2012, 03:14
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

Сообщение от KOLANICH Посмотреть сообщение
не работает...
if (!addEventListenerOriginal) {
	var addEventListenerOriginal = EventTarget.prototype.addEventListener;
	*!*EventTarget.prototype.addEventListener*/!* = function (evt, cb, bub) {
		console.log(this, evt, cb, bub);
		
		addEventListenerOriginal.apply(this, arguments);
	}
}
document.body.addEventListener(...);
alert( "addEventListener" in *!*Node.prototype*/!* );
Ответить с цитированием
  #8 (permalink)  
Старый 25.02.2012, 14:01
Аватар для KOLANICH
Профессор
Отправить личное сообщение для KOLANICH Посмотреть профиль Найти все сообщения от KOLANICH
 
Регистрация: 22.11.2008
Сообщений: 277

и что вы этим хотели сказать?
там и не должно быть, и вообще база - EventTarget, но там почему-то
EventTarget.prototype.addEventListener пустой

Последний раз редактировалось KOLANICH, 25.02.2012 в 14:12.
Ответить с цитированием
  #9 (permalink)  
Старый 25.02.2012, 15:05
Аватар для Nekromancer
Профессор
Отправить личное сообщение для Nekromancer Посмотреть профиль Найти все сообщения от Nekromancer
 
Регистрация: 06.05.2009
Сообщений: 1,163

KOLANICH,
Вообще то должно быть. В идеале Node должен наследоваться от EventTarget и иметь addEventListener. Но увы, интерфейс EventTarget в большинстве браузеров реализовал не так как надо. А addEventListener в цепочке прототипов появляются с Element и Document.
__________________
Нужно равняться на лучших, а не оправдываться за счёт худших.
Ответить с цитированием
  #10 (permalink)  
Старый 25.02.2012, 16:32
Аватар для KOLANICH
Профессор
Отправить личное сообщение для KOLANICH Посмотреть профиль Найти все сообщения от KOLANICH
 
Регистрация: 22.11.2008
Сообщений: 277

Перепробовал и для Element.prototype сделать, результат тот же, что и для HTMLElement.prototype.
Не пашед.

Если немного поразмыслить, то мы должны присваивать значение самому EventTarget, а не его прототипу, ибо он сам и есть прототип.
Это также было опробовано, но не работает.
Почему не работает через HTMLElement.prototype тоже не понятно.
Я вообще ничего не понимаю.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск