Javascript.RU

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

обработчик событий в другое место
искал решение на форуме, но... поэтому создал новую тему

есть код (сократил для понимания моего вопроса)

<script> function gogo () { ...действия}</script>
<input type="button" onClick="gogo();" id="m13">


здесь все просто, по клику выполняю функцию gogo()

вопрос:
как написать тоже самое но при этом не трогать тэг инпут, то есть удалив из него вот это onClick="gogo();"

надеюсь сформулировал доступно.
Ответить с цитированием
  #2 (permalink)  
Старый 17.02.2011, 14:17
Аватар для walik
Профессор
Отправить личное сообщение для walik Посмотреть профиль Найти все сообщения от walik
 
Регистрация: 09.11.2009
Сообщений: 1,101

Если на JQuery то можно:
$('input#m13').click(function() {
 // Код
});


Если на JS, то так если не ошибаюсь:
document.getElementById('m13').onclick=function(){
    //код
}
__________________
"Всегда пишите код так, будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете."
Мой сертификат :-D клацай

Последний раз редактировалось walik, 17.02.2011 в 14:20.
Ответить с цитированием
  #3 (permalink)  
Старый 17.02.2011, 18:31
Интересующийся
Отправить личное сообщение для sympler Посмотреть профиль Найти все сообщения от sympler
 
Регистрация: 07.06.2010
Сообщений: 11

на jquery работает
но нужно все таки на js, хотя по логике все вроде верно...
Ответить с цитированием
  #4 (permalink)  
Старый 17.02.2011, 18:48
Аватар для walik
Профессор
Отправить личное сообщение для walik Посмотреть профиль Найти все сообщения от walik
 
Регистрация: 09.11.2009
Сообщений: 1,101

<html>
<head>
<script>
function setClick() {
	document.getElementById('m13').onclick = function() {
		alert('Не кликай больше');
	}
}
</script>
</head>
<body onload="setClick();">
<input type="button" id="m13" value="Кликни" /><br />
</body>
</html>


Вот, все работает.
Нужно вешать onclick только когда весь документ загружен.
__________________
"Всегда пишите код так, будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете."
Мой сертификат :-D клацай
Ответить с цитированием
  #5 (permalink)  
Старый 20.02.2011, 23:56
Интересующийся
Отправить личное сообщение для sympler Посмотреть профиль Найти все сообщения от sympler
 
Регистрация: 07.06.2010
Сообщений: 11

работает.
спасибо на этом. но хотел обойтись без лишнего html кода )

попробовал сам:
но не работает

<script>
document.getElementByTag('body').onload = function() {
	document.getElementById('m13').onclick = function() {
		alert('Не кликай больше');
	}
}
</script>
Ответить с цитированием
  #6 (permalink)  
Старый 21.02.2011, 09:13
Аватар для B~Vladi
Модератор Всея Форума
Отправить личное сообщение для B~Vladi Посмотреть профиль Найти все сообщения от B~Vladi
 
Регистрация: 14.05.2009
Сообщений: 4,021

Сообщение от sympler
document.getElementByTag('body').onload
document.body.onload


getElementByTag - сам придумал?
В любом случае метод getElementsByTagName возвращает коллекцию элементов, даже если найден 1 узел, будь внимательнее.
__________________
Болтовня ничего не стоит. Покажите мне код. — Linus Torvalds
влад.куркин.рф
Ответить с цитированием
  #7 (permalink)  
Старый 25.02.2011, 19:37
Интересующийся
Отправить личное сообщение для sympler Посмотреть профиль Найти все сообщения от sympler
 
Регистрация: 07.06.2010
Сообщений: 11

спасибо. это я уже разные варианты пробовал...

только не могу понять почему этот код не работает:
<html>
<head>
<script>
document.body.onload = function() {
	document.getElementById('m13').onclick = function() {
		alert('Не кликай больше');
	}
}
</script>

</head>
<body>
<input type="button" id="m13" value="Кликни" /><br />
</body>
</html>

Последний раз редактировалось sympler, 25.02.2011 в 19:45.
Ответить с цитированием
  #8 (permalink)  
Старый 25.02.2011, 19:50
Аватар для B~Vladi
Модератор Всея Форума
Отправить личное сообщение для B~Vladi Посмотреть профиль Найти все сообщения от B~Vladi
 
Регистрация: 14.05.2009
Сообщений: 4,021

Сообщение от sympler
только не могу понять почему этот код не работает
Потому что у body НЕТ события onload!!!
__________________
Болтовня ничего не стоит. Покажите мне код. — Linus Torvalds
влад.куркин.рф
Ответить с цитированием
  #9 (permalink)  
Старый 25.02.2011, 19:50
Аватар для Amphiluke
   ☽
Отправить личное сообщение для Amphiluke Посмотреть профиль Найти все сообщения от Amphiluke
 
Регистрация: 07.01.2011
Сообщений: 254

Сообщение от sympler
только не могу понять почему этот код не работает:
Просто к моменту, когда начинает выполняться сценарий объект body еще не существует. Замените
Сообщение от sympler
document.body.onload = function() {
на
window.onload = function() {
Ответить с цитированием
  #10 (permalink)  
Старый 28.02.2011, 10:34
Интересующийся
Отправить личное сообщение для sympler Посмотреть профиль Найти все сообщения от sympler
 
Регистрация: 07.06.2010
Сообщений: 11

теперь еще один вопрос решен.
<html>
<head>
<script>
window.onload = function() {
	document.getElementById('m13').onclick = function() {
		alert('Не кликай больше');
	}
}
</script>

</head>
<body>
<input type="button" id="m13" value="Кликни" /><br />
</body>
</html>


ура. работает!
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обработчик событий kucaeva Общие вопросы Javascript 2 10.12.2010 16:42
обработчик событий kuzroman AJAX и COMET 7 26.11.2010 17:35
Скопировать обработчики событий с одного элемента на другой. Jurasmi Events/DOM/Window 3 10.11.2010 19:03
Как "обмануть" обработчик события? itPiligrim Events/DOM/Window 0 13.05.2010 22:55
Обработчик события: как делает jquery? Shasoft jQuery 35 22.04.2009 09:41