Проблема с onclick
Вот код:
ms=document.getElementById("menu").getElementsByTagName("a"); for (var i=0; i<ms.length; i++) { menus[i].onClick=ps(menus[i].href); menus[i].href="javascript:void(0)"; } //Далее функция function ps (k) { alert (k); } При загрузке страницы срабатывают события со всех ссылок, без всякого нажатия. В чём проблема? |
Цитата:
ps и присваиваете свойству onClick результат выполнения этой функции, т.е. undefined .function ps (k) { //alert (k); } var result = ps("…"); alert(result); // Все равно, что: //menus[i].onClick = undefined; Нужно передавать ссылку на функцию: menus[i].onClick = ps;Аргументы в обработчик события, как в функцию, передать не получится. Об этом дальше. 2. Обработчику события соответствует свойство onclick , а не onClick . JavaScript регистрозависимый. menus[i].onclick = ps; 3. Чтобы ваш скрипт работал правильно, нужно будет использовать замыкания http://javascript.ru/basic/closure#p...-ispolzovaniya for (var i=0; i<ms.length; i++) { menus[i].onсlick = function (href) { return function () { ps(href); }; }(menus[i].href); menus[i].href="javascript:void(0)"; } 4. http://javascript.ru/unsorted/why_href_js_is_bad |
Спасибо, Octane, теперь всё работает!
К тому же javascript:void(0) заменил на return false. |
Часовой пояс GMT +3, время: 11:57. |