Показать сообщение отдельно
  #2 (permalink)  
Старый 19.05.2010, 02:42
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

Сообщение от Teledrug
menus[i].onClick=ps(menus[i].href);
1. Вы вызываете функцию 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, 19.05.2010 в 02:53.
Ответить с цитированием