Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> innerHTML проблема с событиями 
:(
    Опции темы
flashaa
Дата 17.9.2007, 20:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 796
Регистрация: 7.3.2006

Репутация: нет
Всего: 25



Читал темы с проблемами с innerHTML, то так и не нашел собственно ответа.
А вопрос вот в чем: динамически вставляю фрагмент кода примерно так:
Код

document.getElementById('content').innerHTML = result['out'];

внутри кода содержатся также назначения обработчиков событий элементов, 
например:
Код

<input type="button" id="log_out" onclick="log_out();"/>

При этом итоговое содержимое совершенно соответствует желаемому. НО! Ни один обработчик не работает!

Иду дальше, обращаюсь к уже вставленным через innnerHTML элементам и выставляю обработчики, вот так:
Код

document.getElementById('log_out').onclick = log_out;


НЕ работает!

Однако, если я ставлю на обработчик "пустышку" alert() - он срабатывает:
Код

<input type="button" onclick="alert('hz');"/>


Алерт работает! А моя функция нет - бред.. Помогите.
PM MAIL   Вверх
dsCode
Дата 17.9.2007, 23:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 565
Регистрация: 8.9.2007
Где: Saint-Petersburg

Репутация: 19
Всего: 26



flashaa

Код

<div id="test"></div>

<script type="text/javascript">
  
  function logOut() {
    alert("test");
    return true;
  }

  var content = '<span id="test" onclick="logOut(); return true;">onClick calls logOut</span>';
  
  document.getElementById("test").innerHTML = content;

</script>


Проблема, вероятно, в самой функции. Или подключении ее (если она не в этом же документе описана, а подключается через .js).


--------------------
the .code inside
:my music
PM MAIL WWW ICQ Jabber   Вверх
flashaa
Дата 18.9.2007, 11:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 796
Регистрация: 7.3.2006

Репутация: нет
Всего: 25



dsCode, cпасибо, вы совершенно правы. Проблема была в том, что при вставке с помощью innerHTML, затирался один элемент, который использовался в функции. Таким образом JS выдавал ошибку в начале работы с функции (в операторе с затертым элементом) и функция прекращала выполнение

Это сообщение отредактировал(а) flashaa - 18.9.2007, 11:33
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0932 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.