ФорумПрограммированиеJavaScript → onclick в списках

onclick в списках

  • DeVitos

    Сообщения: 4 Репутация: N Группа: Кто попало

    Spritz 11 ноября 2010 г. 9:18

    Здарвствуйте,
    Я только знакомлюсь с JS и возможно мой вопрос покажется глупым, но проблема есть и она мне мешает) Есть выпадающее CSS меню с пунктами подменю. Во всех этих меню и подменю по событию onclick вызывается функция в которую передается параметр например:
    <li class='mainMenui' onclick="funct('Menu 1')"><a class='mainMenui' href='#'>Menu 1</a></li>
    <ul class='mainMenum'>
    <li class='mainMenui' onclick="funct('Sub menu 3')"><a class='mainMenui' href="#">Sub menu 3</a></li>
    </ul></li>
    function funct(param){
    alert(param);
    }

    так вот, в результате, при нажатии на "Sub menu 3" появляется сообщение "Sub menu 3", а вслед за ним без проса сообщение "Menu 1". Если бы Sub menu 3 было на 5 уровне, ты выскочило бы 5 сообщений для каждого родительского меню. Как этого избежать?
    Спасибо
  • DeVitos

    Сообщения: 4 Репутация: N Группа: Кто попало

    Spritz 11 ноября 2010 г. 11:03, спустя 1 час 44 минуты 41 секунду

    как часто и бывает, надо было просто прочитать учебник )) тут объясняется порядок срабатывания событий http://javascript.ru/tutorial/events/intro

    Напишу что получилось, ато в интернете не смог найти решения. может комуто и пригодится.
    провел небольшую корректировку вызова функции:
    onclick="funct('Sub menu 3', event)"


    и добавил несколько условий в теле самой функции:
    function funct(param,e){
    if(!e) e = window.event;
    alert(param);
    if(e.stopPropagation) e.stopPropagation();
    else e.cancelBubble = true;
    }

    работает в опере, ие и хроме. фф не проверял
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 11 ноября 2010 г. 13:18, спустя 2 часа 14 минут 41 секунду

    просто онклик надо вешать на саму ссылку и делать в нем return false. все :)
    Спустя 11 сек.
    ну или "как помогло" тоже можно
    Сапожник без сапог
  • DeVitos

    Сообщения: 4 Репутация: N Группа: Кто попало

    Spritz 14 ноября 2010 г. 1:59, спустя 2 дня 12 часов 40 минут

    просто онклик надо вешать на саму ссылку и делать в нем return false. все :)
    как это?
  • technobulka

    Сообщения: 4540 Репутация: N Группа: Джедаи

    Spritz 14 ноября 2010 г. 6:32, спустя 4 часа 33 минуты 39 секунд

    <a href="#" onclick="func(); return false;">

    кажись так))
    Высокоуровневое абстрактное говно
  • DeVitos

    Сообщения: 4 Репутация: N Группа: Кто попало

    Spritz 14 ноября 2010 г. 11:38, спустя 5 часов 6 минут 12 секунд

    попробовал - не работает. так же срабатывает событие у всех родительских элементов.

Пожалуйста, авторизуйтесь, чтобы написать комментарий!