Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Остановить распространение событий (https://javascript.ru/forum/events/35676-ostanovit-rasprostranenie-sobytijj.html)

рони 19.02.2013 09:04

danik.js,preventDefault()
верно отмена всплытия это event.stopPropagation()

NeVirus 19.02.2013 09:30

Цитата:

NeVirus, live() на самом деле не навешивает обработчик на указанный элемент. Обработчик по сути навешивается на document (я так думаю) и срабатывает только когда событие "доплывет" до document. Нужно:
a) Не использовать live, а навешивать обработчик непосредственно (через click())
b) Проверять event.target в $('#sort_p_1').click()
Вот оно! Что то подобное event.target я и искал! Спасибо!

Цитата:

Обработчик по сути навешивается на document (я так думаю) и срабатывает только когда событие "доплывет" до document.
Конкретно об этом - все верно, экспериментально подтверждается.

@рони:
preventDefault() - как я понял останавливает стандартное поведение браузера в том числе и модель всплытия по идее... так что в какой то степени совет правильный :)

Все проблема решена - еще раз всем спасибо!

danik.js 19.02.2013 11:51

Цитата:

Сообщение от NeVirus
preventDefault() - как я понял останавливает стандартное поведение браузера в том числе и модель всплытия по идее... так что в какой то степени совет правильный

Долго ли проверить?
<button id="button">Клик ми</button>
<script>
    var handler = function(e){
        e.preventDefault();
        alert('Обработчик ' + this.nodeName);
    }
    button.addEventListener('click', handler);
    document.addEventListener('click', handler);
</script>


Часовой пояс GMT +3, время: 01:59.