Javascript.RU

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

Помощь со "слущателем"
Всем привет. Хочу чуть-чуть разобраться с ЯС, чтобы делать простенькие скрипты. Сейчас просто тренеруюсь.

new.html
-------------------------

<script type='text/javascript' src='js.js'></script>
<a href='#' id='but' style='border: 0'>Alert One</a>
<a href='#' id='but2' style='border: 0'>Alert Two</a>


js.js
---------------------------

window.onload = loadlisteners;

function loadlisteners(){

	add_event('but', 'click', show_alert(msg));
	add_event('but2', 'click', show_alert(msg));
		
}


function add_event(el, type, handler){

	el.addEventListener(type, function(){handler} false); // я так понимаю, что здесь что-то не так, между фигурными скобками?
	
}


function show_alert(msg){

	alert(msg);
	
}


Это только для ФФ. Почему не работает? Только код готовый не пишите, я сам хочу

И еще вопрос: иногда в скриптах пишут function bla_bla(e){ ... }
Я понимаю, что е это ссылка на событие, но откуда это событие берется, если нигда выше переменная е не объявлена так e = event || window.event; ?
Ответить с цитированием
  #2 (permalink)  
Старый 09.05.2011, 21:55
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

el.addEventListener(type, function(){handler} false); // я так понимаю, что здесь что-то не так, между фигурными скобками?


да. запятую забыли. и еще скобки .

element.addEventListener( событие, обработчик, всплытие)

так лучше. если хотите сами, то не смотрите на то,что снизу

el.addEventListener(type, function(){handler*!*()*/!*}*!*,*/!* false);


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

Сообщение от newinjs
add_event('but', 'click', show_alert(msg));
but - вы передаете не элемент, а просто строчку.
Получайте элемент по ID: document.getElementById('but')
и вот это и передавайте функции add_event.

show_alert(msg) - Тут вы должны передавать функцию, а не результат выполнения другой функции.
То есть передавайте:
function() {alert(msg);}


Ну а подробнее про все это почитайте по ссылке выше которую дал melky
__________________
"Всегда пишите код так, будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете."
Мой сертификат :-D клацай

Последний раз редактировалось walik, 09.05.2011 в 22:27.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Бесплатная помощь новичкам iCanary Общие вопросы Javascript 11 30.11.2015 20:35
Увеличить размер div'a, нужна помощь. neonick Events/DOM/Window 2 04.03.2011 22:24
Очень нужна помощь с Ext JS dcbal ExtJS 1 09.07.2010 13:15
нужна помощь по тим виеру за 160 вмр nemo Работа 41 28.06.2010 13:19
нужна помощь dominosoko Серверные языки и технологии 4 14.03.2010 02:17