Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 11.11.2012, 00:42
Новичок на форуме
Отправить личное сообщение для Weks Посмотреть профиль Найти все сообщения от Weks
 
Регистрация: 21.01.2012
Сообщений: 4

Повесить событие на кнопку, не меняя кода кнопки
Я не очень хорошо разбираюсь в JS, так что возможно вопрос из области капитанства

Представим что у нас есть страница с каким-нибудь хтмл кодом.
На странице есть кнопка с айдишником button1
Нужно по клику на кнопку совершать какое-нибудь действие
Вопрос: как это прописать скриптом не в коде самой кнопки onclick="", а в шапке например, перед тегом body?

И второй вопрос
Если наша страница - это карточка товара, а в событие по клику на кнопку "отправить в корзину" нужно запихивать название товара (оно в каком нибудь конкретном теге прописано, h1 например). Как в этом случае в событие, которое совершается по клику, подсунуть название товара?
Ответить с цитированием
  #2 (permalink)  
Старый 11.11.2012, 03:03
Аспирант
Отправить личное сообщение для FoxTrix Посмотреть профиль Найти все сообщения от FoxTrix
 
Регистрация: 27.07.2012
Сообщений: 73

1) В head поместить скрипт:
<script>
document.getElementById('button1').onclick = function()
{
alert('Нажата кнопка');
}
</script>


2) тегу в котором записано название (например h1) присвоить id
<h1 id="product_name">Товар1</h1>

и дальше при вызове функции написать
<input type="button" name="button" onclick="func(document.getElementById('product_name').innerHTML)">


а функция будет выглядеть так:
function fucn(product)
{
alert(product); //выведет Товар1
}
Ответить с цитированием
  #3 (permalink)  
Старый 11.11.2012, 03:14
Интересующийся
Отправить личное сообщение для cyberblade Посмотреть профиль Найти все сообщения от cyberblade
 
Регистрация: 20.03.2012
Сообщений: 12

<html><head>
</head><body>

<button id="mybutton">кнопка</button>
<script language="javascript"><!--	
	document.getElementById('mybutton').onclick = function() {
		alert('Клик')
	}
//--></script>	

</body></html>
Ответить с цитированием
  #4 (permalink)  
Старый 11.11.2012, 05:39
х.з
Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 4,588

Сообщение от FoxTrix
1) В head поместить скрипт:
1 <script>
2 document.getElementById('button1').onclick = function()
3 {
4 alert('Нажата кнопка');
5 }
6 </script>
Садись, двойка. твой код выдаст ошибку. элемент на какой ты вешаешь обработчик ещё не существует.

Последний раз редактировалось dmitriymar, 11.11.2012 в 05:43.
Ответить с цитированием
  #5 (permalink)  
Старый 11.11.2012, 11:12
Интересующийся
Отправить личное сообщение для cyberblade Посмотреть профиль Найти все сообщения от cyberblade
 
Регистрация: 20.03.2012
Сообщений: 12

2FoxTrix - А вы проверьте сами ) Будет ли работать ваш совет

У меня ощущение, что ваш скрипт надо помещать ниже кнопки ))) Т. е. не в head а в body

Последний раз редактировалось cyberblade, 11.11.2012 в 11:15.
Ответить с цитированием
  #6 (permalink)  
Старый 11.11.2012, 12:35
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

document.body.onload = function(){
document.getElementById('button1').onclick = function(){
alert('CLICK');
}}
Ответить с цитированием
  #7 (permalink)  
Старый 11.11.2012, 13:47
Аспирант
Отправить личное сообщение для FoxTrix Посмотреть профиль Найти все сообщения от FoxTrix
 
Регистрация: 27.07.2012
Сообщений: 73

dmitriymar, cyberblade,
ок, не прав, не проверил, спать хотел =)

Ruslan_xDD,
тогда уж
<script>
window.onload = function()
{
	document.getElementById('button1').onclick = function()
	{
		alert('Нажата кнопка');
	}
}
</script>

т.к. document.body.onload = function(){} у меня тоже не работает
Ответить с цитированием
  #8 (permalink)  
Старый 11.11.2012, 13:54
Интересующийся
Отправить личное сообщение для cyberblade Посмотреть профиль Найти все сообщения от cyberblade
 
Регистрация: 20.03.2012
Сообщений: 12

2Ruslan_xDD - не покатит, скрипт будет выполняться первый раз без контроля пользователя... По событию онлоад ) Можно придумать костыль в виде переменной которую плюсовать, если принципиально надо скрипт поместить в хеад и использовать именно это решение )

З. Ы. не знаю на счет того сработает ли document.body.onload = function()... Но тупо <body onload="myfunc();"> точно сработает. Хотя особо разницы с первого взгляда и нет...

Последний раз редактировалось cyberblade, 11.11.2012 в 14:01.
Ответить с цитированием
  #9 (permalink)  
Старый 11.11.2012, 16:13
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

Да способов можно много придумать

function loadbtn(){
document.getElementById('button1').onclick = function(){
alert('CLICK');
}}


и вставить loadbtn() в самый конец body.
Ответить с цитированием
Ответ


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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
повесить обработчик на событие Ia_alex Events/DOM/Window 2 17.09.2012 14:23
Повесить событие на изменение DOM nebaz Events/DOM/Window 5 17.06.2012 15:15
повесить событие на массив элементов zlodiak Элементы интерфейса 1 24.02.2012 13:57
Не получается повесить событие wine-time Элементы интерфейса 2 23.07.2011 03:54
Как повесить событие без редактирования файла? bilbas Общие вопросы Javascript 8 11.09.2009 15:17