Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 18.10.2010, 14:55
Кандидат Javascript-наук
Отправить личное сообщение для Jurasmi Посмотреть профиль Найти все сообщения от Jurasmi
 
Регистрация: 25.11.2008
Сообщений: 115

Скопировать обработчики событий с одного элемента на другой.
Есть html-элемент на странице (например div).
На нём висят разные обработчики событий (их набор заранее не известен).
Прямого доступа к коду этих обработчиков нет.

Необходимо динамически создать элемент так, чтобы на нём висели те же самые обработчики тех же самых событий.

Что я делал:
Узнал, что нет способа узнать какие именно обработчики висят на элементе (если только они не назначены через атрибут), значит и скопировать их не получится.

Узнал, что можно сделать так:
<div id="first">first</div><br/>
<div id="simulate">simulate</div>

var first = document.getElementById('first'),
	simulate = document.getElementById('simulate'),
	fHandler = function(){
		console.log('ok');
	};
	
first.onclick = fHandler;

//при наведении мышки на элемент "simulate" срабатывает обработчик 'onclick' элемента "first"
simulate.onmouseover = function(){
	var evt = document.createEvent("MouseEvents");
	evt.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
	first.dispatchEvent(evt);
}

здесь не происходит "копирования" обработчиков, а просто возбуждается событие исходного "донорского" элемента, значит удалить этот элемент нельзя - не сработает обработчик, к тому же я не знаю наперед список отрабатываемых событий.

Господа, нужна ваша помощь.
Как решить задачу?
Ответить с цитированием
  #2 (permalink)  
Старый 24.10.2010, 02:59
Аватар для vladlen
Кандидат Javascript-наук
Отправить личное сообщение для vladlen Посмотреть профиль Найти все сообщения от vladlen
 
Регистрация: 19.10.2010
Сообщений: 143

а. прочитать все маны на этом сайте, признаться себе что чайник и прочитать все повторно.
б. клонирование, но без "а" этого делать не стоит.
в. получить указатель на целевую хрень, получить указатель на свою хрень и подвесить эвенты целевой хрени на свою хрень. Что там було не важно.
Ничего не понял? Тогда только "а".
Ответить с цитированием
  #3 (permalink)  
Старый 08.11.2010, 16:24
Кандидат Javascript-наук
Отправить личное сообщение для Jurasmi Посмотреть профиль Найти все сообщения от Jurasmi
 
Регистрация: 25.11.2008
Сообщений: 115

Цитата:
Ничего не понял? Тогда только "а".
Что-то понял, но не всё.

Цитата:
прочитать все маны на этом сайте, признаться себе что чайник и прочитать все повторно.
Хороший совет, тем более что я чайник

Цитата:
клонирование, но без "а" этого делать не стоит
Клонировать что HTML-элемент? Функцией "cloneNode()" ? Разве она скопирует обработчики событий (если тоько они не лежат в виде атрибутов)?

Цитата:
получить указатель на целевую хрень, получить указатель на свою хрень и подвесить эвенты целевой хрени на свою хрень.
Как перебирать обработчики если я не знаю заранее на какие события они обрабатывают?
Можно ли узнать какие события обрабатываются в этом элементе (как получить список обработчиков, а точнее событий), а не всех возможных?
Ответить с цитированием
  #4 (permalink)  
Старый 10.11.2010, 19:03
Аватар для vladlen
Кандидат Javascript-наук
Отправить личное сообщение для vladlen Посмотреть профиль Найти все сообщения от vladlen
 
Регистрация: 19.10.2010
Сообщений: 143

Сообщение от Jurasmi Посмотреть сообщение
Можно ли узнать какие события обрабатываются в этом элементе (как получить список обработчиков, а точнее событий), а не всех возможных?
А все перебрать? Религия не позволяет?
Возможно и есть варианты, но я пока не компетентен в данном вопросе. Если нужно задачу решить, то всегда есть решение "в лоб". За красотой в гугл
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Фильтры IE и обработчики событий IE6 mexoboy Internet Explorer 6 25.05.2010 16:51
Скопировать CSS от одного объекта-другому. Tohin jQuery 5 03.02.2010 17:36
Стрелка от одного элемента ко второму SOTON jQuery 4 12.07.2009 01:51
Передача параметров из одного фрейма в другой Игорь12345 Events/DOM/Window 15 17.06.2009 15:48
Копирование из одного input в другой input bar-boss Общие вопросы Javascript 7 08.04.2008 19:10