Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Events - кто прав??? (https://javascript.ru/forum/events/44345-events-kto-prav.html)

kuzroman 16.01.2014 15:44

Events - кто прав???
 
В этой статье
Events: Смысл return false из обработчика

Говориться что "return false из обработчика события предотвращает действие браузера по умолчанию, но не останавливает всплытие."

Как же тогда объяснить поведение в этом примере?
JsFiddler

nice_try 16.01.2014 15:59

проверь свой код:

$("#example5 a").click(function(
    return false;
})


сколько лет в js? ах ты пес смердящий

kuzroman 16.01.2014 16:22

Цитата:

Сообщение от nice_try (Сообщение 292455)
проверь свой код:

$("#example5 a").click(function(
    return false;
})

Повнимательнее, в статье написано что "return false" не предотвращает "bubbling us", в моем же примере оно предотвращено.

Мое единственное объяснение что изменился ECMAScript, а с ним и поведение "return false".

melky 16.01.2014 16:25

Цитата:

Сообщение от kuzroman (Сообщение 292459)
Повнимательнее, в статье написано что "return false" не предотвращает "bubbling us", в моем же примере оно предотвращено.

Мое единственное объяснение что изменился ECMAScript, а с ним и поведение "return false".

а каким боком jQuery считается за ECMAScript?

вообще, каким боком DOM относится к ECMAScript?

nice_try 16.01.2014 16:30

ты все не понял? смотри и узбагойся
http://jsfiddle.net/b2Yt7/6/


kuzroman 16.01.2014 16:43

Цитата:

Сообщение от nice_try (Сообщение 292464)
ты все не понял? смотри и узбагойся
http://jsfiddle.net/b2Yt7/6/

Вы сегодня в ударе. Где вам Like поставить?

kuzroman 16.01.2014 16:45

Цитата:

Сообщение от melky (Сообщение 292462)
а каким боком jQuery считается за ECMAScript?
вообще, каким боком DOM относится к ECMAScript?

Да вы правы в нативном варианте все работает как и описано в статье.

nice_try 16.01.2014 16:51

Цитата:

Сообщение от kuzroman (Сообщение 292466)
Вы сегодня в ударе. Где вам Like поставить?

в профиле, но у тебя карма мелковата, так что расслабься

kuzroman 16.01.2014 16:57

Цитата:

Сообщение от nice_try (Сообщение 292468)
в профиле, но у тебя карма мелковата, так что расслабься

Да и вам это не поможет.

nice_try 16.01.2014 17:00

Цитата:

Сообщение от kuzroman (Сообщение 292471)
Да и вам это не поможет.

поясни

kuzroman 16.01.2014 17:07

Цитата:

Сообщение от nice_try (Сообщение 292473)
поясни

Кто хотел тот понял.

nice_try 16.01.2014 17:10

Цитата:

Сообщение от kuzroman (Сообщение 292475)
Кто хотел тот понял.

кто хотел?

Tecvid 16.01.2014 19:51

проверьте)

http://jsfiddle.net/b2Yt7/9/

cyber 17.01.2014 00:30

kuzroman, в статье описанно поведение javascript по стандарту, а если не работает в jquery, значить у них не по стандарту. К.О
http://jsfiddle.net/b2Yt7/11/

cyber 17.01.2014 00:40

работает такой вариант http://jsfiddle.net/b2Yt7/12/

kuzroman 18.01.2014 13:30

Спасибо всем, я на первой странице уже отписал, что при использовании "return false"
нативный JS - отменяет только действие (e.preventDefault), всплытие события продолжается.
А вот jQuery помимо e.preventDefault завершает еще и всплытие (e.stopPropagation).

вот пример

kostyanet 20.01.2014 08:03

Это через инлайновые ивенты, то есть DOM'ные. Через addEventListener() без e.preventDefault прописанного вручную хоть false, хоть ЛОШЬ возвращай из колбэка - все по барабану.

А вот как jQuery обвешивается ивентами это и надо было посмотреть. Я как-то смотрел и смутно помню addEventListener в одной из веток мега-обеспечения мега-совместимости с браузерами от РХ,


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