Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 09.06.2012, 18:49
Аспирант
Отправить личное сообщение для gJam Посмотреть профиль Найти все сообщения от gJam
 
Регистрация: 21.07.2011
Сообщений: 92

Повторный вызов события
Добрый день, форумчане.
Помогите мне пожалуйста с событиями..
У меня элементы формы генерируются автоматом из жс и к каждой сгенерированной части привязано событие onBlur которое вызывает метод..
Причем единожды событие обрабатывается, а вторично и N-раз уже нет..
чем решить данную проблему?
Спасибо.
Ответить с цитированием
  #2 (permalink)  
Старый 09.06.2012, 18:55
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

если вы удаляете элементы а потом снова добавляете, то и события нужно снова привязывать. После удаления элемента все события так же теряются.
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
  #3 (permalink)  
Старый 09.06.2012, 18:58
Аспирант
Отправить личное сообщение для gJam Посмотреть профиль Найти все сообщения от gJam
 
Регистрация: 21.07.2011
Сообщений: 92

Сообщение от devote Посмотреть сообщение
если вы удаляете элементы а потом снова добавляете, то и события нужно снова привязывать. После удаления элемента все события так же теряются.
Там соль то в том, что когда я создаю эл1. у него есть обработчик на инпуте.. который вызывает метод.

Когда я добавляю еще 1 эл. (второй/третий/тд), то при выполнении эвента (а именно On blur) он не срабатывает на инпуте..

Как бы он понимает в любом случае (я вызывал его со второго инпута), а он работает с тем же (первым)..
Как грамотно привязать?

Последний раз редактировалось gJam, 09.06.2012 в 19:02.
Ответить с цитированием
  #4 (permalink)  
Старый 09.06.2012, 19:06
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Сообщение от gJam
Как бы он понимает в любом случае (я вызывал его со второго инпута), а он работает с тем же (первым)..
Как грамотно привязать?
привязывайте обработчик к каждому элементу свой.
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
  #5 (permalink)  
Старый 09.06.2012, 19:07
Аспирант
Отправить личное сообщение для gJam Посмотреть профиль Найти все сообщения от gJam
 
Регистрация: 21.07.2011
Сообщений: 92

Сообщение от devote Посмотреть сообщение
привязывайте обработчик к каждому элементу свой.
Подробнее можно?
А то путаница наступает полнейшая..
Ответить с цитированием
  #6 (permalink)  
Старый 09.06.2012, 19:31
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

<input />
<input />
<input />
<script type="text/javascript">
    var elems = document.getElementsByTagName( 'input' );

    for( var i = 0, elem; elem = elems[ i++ ]; ) {
        elem.onblur = function() {
            alert( "Фокус ушел" );
        }
    }
</script>
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
  #7 (permalink)  
Старый 09.06.2012, 19:36
Аспирант
Отправить личное сообщение для gJam Посмотреть профиль Найти все сообщения от gJam
 
Регистрация: 21.07.2011
Сообщений: 92

Спасибо, пошёл код править..
Ответить с цитированием
  #8 (permalink)  
Старый 09.06.2012, 20:51
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

Если используете jQuery, то погуглите jQuery.live
Если не используете, то можете заюзать ее основную идею
Идея заключается в том, что навешивается обработчик события на все окно, и если событие произошло, то выясняется является ли объект вызвавший событие - тем за которым мы наблюдаем.
То есть в данном случае мы проверяем является ли вызвавший элемент input-ом, и если это так, то выполняем нужные действия.
При этом у нас только один обработчик события, назначенный один раз.
Если на странице появятся еще Input-ы, то событие будет автоматом срабатывать и для них
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
повторный вызов regexp DmitryK1 Общие вопросы Javascript 5 19.06.2012 06:50
вызов события Shaci Общие вопросы Javascript 3 23.01.2012 21:08
вызов события на определенном элементе vvsh Events/DOM/Window 1 23.06.2010 06:17
Явный вызов процедуры обработки события. supchik Общие вопросы Javascript 18 27.01.2009 13:16
Вопрос про вызов события onClick skyfish Общие вопросы Javascript 12 27.12.2008 19:12