Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 06.06.2013, 23:05
Новичок на форуме
Отправить личное сообщение для Virrt Посмотреть профиль Найти все сообщения от Virrt
 
Регистрация: 06.06.2013
Сообщений: 5

OnClick vs innerHTML
Есть элемент
<div><div id='divId'>imkw</div></div>

Есть скрипт
function test() {
	  i = document.getElementById('divId');
	  i.onclick = function() { alert('WTF') }
	  // Добавляет. Все ок
	  i.parentNode.innerHTML = i.parentNode.innerHTML + 'P.S. ..';
}

test();

innerHTML грохает добавленный onclick. А нужно сделать так, чтоб все было как и до него. Подскажите пожалуйста
Ответить с цитированием
  #2 (permalink)  
Старый 06.06.2013, 23:10
Аватар для vadim5june
Студент
Отправить личное сообщение для vadim5june Посмотреть профиль Найти все сообщения от vadim5june
 
Регистрация: 30.04.2012
Сообщений: 1,113

а что Вы добавляете?
какой то текст?
Ответить с цитированием
  #3 (permalink)  
Старый 06.06.2013, 23:16
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 32,274

Virrt,
Вариант...
<!DOCTYPE HTML>
<html>
<head>
  <title>Untitled</title>
</head>
<body>
<div><div id='divId'>imkw</div></div>
<script>
function test() {
	  i = document.getElementById('divId');
	  i.onclick = function() { alert('WTF') }
      i.parentNode.appendChild(document.createTextNode('P.S. ..'));
}
test();
</script>
</body>
</html>
Ответить с цитированием
  #4 (permalink)  
Старый 06.06.2013, 23:17
Новичок на форуме
Отправить личное сообщение для Virrt Посмотреть профиль Найти все сообщения от Virrt
 
Регистрация: 06.06.2013
Сообщений: 5

Да. Текст
Не, можно и appendChild сделать. Но это план Б ) Интересно какие еще есть варианты. Может событие есть возможность вписать как-то более жестко
Ответить с цитированием
  #5 (permalink)  
Старый 06.06.2013, 23:20
Новичок на форуме
Отправить личное сообщение для Virrt Посмотреть профиль Найти все сообщения от Virrt
 
Регистрация: 06.06.2013
Сообщений: 5

О. А вот document.createTextNode() я не знал. Так уже и с appendChild-ом все не по индуски выглядит. Спасибо
Ответить с цитированием
  #6 (permalink)  
Старый 06.06.2013, 23:21
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 32,274

Virrt,
Делегирование событий
Ответить с цитированием
  #7 (permalink)  
Старый 06.06.2013, 23:25
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

<div><div id='divId'>imkw</div></div>
<script>
function divClick(sel) { alert('WTF') }
function test() {
	  i = document.getElementById('divId');
	  i.setAttribute('onclick','divClick(this)');
	  // Добавляет. Все ок
	  i.parentNode.innerHTML = i.parentNode.innerHTML + 'P.S. ..';
}

test();
</script>
Ответить с цитированием
  #8 (permalink)  
Старый 06.06.2013, 23:27
Новичок на форуме
Отправить личное сообщение для Virrt Посмотреть профиль Найти все сообщения от Virrt
 
Регистрация: 06.06.2013
Сообщений: 5

А если добавляется не текст? Например с Аякса приходит html-страница? У меня различные условия для этой проблемы есть )
Ответить с цитированием
  #9 (permalink)  
Старый 06.06.2013, 23:40
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 32,274

Virrt,
смотрите делегирование ---ссылка выше -- тоже самое для jquery -- on

вешают клик на документ и проверяют по какому элементу кликнули.
Ответить с цитированием
  #10 (permalink)  
Старый 06.06.2013, 23:44
Новичок на форуме
Отправить личное сообщение для Virrt Посмотреть профиль Найти все сообщения от Virrt
 
Регистрация: 06.06.2013
Сообщений: 5

Атрибутами проблема решилась. Спасибо. И за ссылку спасибо. Освою
Ответить с цитированием
Ответ


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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
OnClick ячейки таблицы и ссылки в этой ячейке MasDen Javascript под браузер 2 30.06.2011 09:34
Как избавиться от каскадного onclick? GydruS Events/DOM/Window 2 24.02.2011 10:54
onclick и <object> MCTrane Общие вопросы Javascript 3 23.12.2010 22:33
Событие onClick avtor01 Events/DOM/Window 3 03.09.2009 17:01
ошибка с innerHTML Gekt0r Общие вопросы Javascript 15 21.08.2008 10:57