konto usunięte

Temat: jquery, propagacja eventu

Mam taki kod : http://jsfiddle.net/09xecnzm/1/

W uproszczeniu: Gdy uzytkownik klika prawym przyciskiem na obrazku, pojawia sie moje wlasne menu z opcjami, jesli potem kliknie lewym - menu znika.

Glass Pane jest po to, zeby przechwycic klik, (tutaj glass specjalnie przyciemniony, zeby bylo widac).

Problem: Uzytkownik skarzy sie: "Jak klikne prawym i menu sie wyswietla, to po kliknieciu na guzik "OK" nic sie nie dzieje. Dokladniej - menu znika, musze kliknac na "OK" jeszcze raz."

Macie jakis pomysl, jak (czy mozna?) przekazac klik do guzika "OK"? Oczywiscie, jesli klik byl nad "okejem". Zarowno obrazkow jak i guzikow moze byc kilkadziesiat.
Piotr S.

Piotr S. PHP - Symfony 2/3
Developer

Temat: jquery, propagacja eventu

http://jsfiddle.net/tmangnqy/

?

konto usunięte

Temat: jquery, propagacja eventu

Twoj fiddle rozwiazuje opisany problem - ale nie moj :-]

W upraszczaniu przykladu posunalem sie o krok za daleko.

Poczatkowo mialem podobne rozwiazanie, ale nie sprawdzilo sie - na stronie jest nas...tawiane eventow, czesc z nich ma stopPropagation() - wtedy nie dziala.

http://jsfiddle.net/cfrx5e4y/1/
Piotr S.

Piotr S. PHP - Symfony 2/3
Developer

Temat: jquery, propagacja eventu

Możesz odpalić klik jeszcze np w ten sposób: http://jsfiddle.net/xx0xowhn/

konto usunięte

Temat: jquery, propagacja eventu

http://www.youtube.com/watch?v=hdaQZNpIqSQTen post został edytowany przez Autora dnia 14.10.14 o godzinie 08:09
Piotr S.

Piotr S. PHP - Symfony 2/3
Developer

Temat: jquery, propagacja eventu

:)
Wojciech Mazurek

Wojciech Mazurek właściciel, PPHU
Neuron

Temat: jquery, propagacja eventu

pozwolę sobie nie zakładać nowego wątku a podpiąć się do tematu choć moje pytanie jest trochę OT

Jak unieważnić/zablokować wszystkie zdarzenia w dokumencie
i ewentualnie jak zrobić to w momencie gdy zdarzenie ma spowodować jego zmianę

Chodzi o to że czasami, gdy user kliknie w link to zanim zostanie załadowany nowy dokument zdąży kliknąć w inny link.
Czołgowo można to zrobić pokrywając dokument przezroczystym divem...
Piotr S.

Piotr S. PHP - Symfony 2/3
Developer

Temat: jquery, propagacja eventu

Chodzi o to że czasami, gdy user kliknie w link to zanim zostanie załadowany nowy dokument zdąży kliknąć w inny link.


$('a').on('click', function(){

$('a').on('click', false);

});
Ten post został edytowany przez Autora dnia 14.10.14 o godzinie 12:10
Wojciech Mazurek

Wojciech Mazurek właściciel, PPHU
Neuron

Temat: jquery, propagacja eventu

Kolegi rozwiązanie zablokuje użycie każdego linku co oczywiście jest odpowiedzią na 1 cześć pytania - można oczywiście rozszerzyć zakres działania np selektorem body i dodać podobne akcje dla klawiatury.
Ale zablokuje wszystkie kliknięcia - również w linki wewnętrzne.
Szczerze mówiąc myślałem że może jest ( w js jestem cały czas silnie początkujący) jakiś mechanizm
który pozwoli wyczyścić i zablokować całkowicie kolejkę zdarzeń, łącznie z timerami
oraz, dopiero o tym w tej chwili pomyślałem - unieważni zapytania ajaxa.

.
Tomasz M.

Tomasz M. never go full
retard!

Temat: jquery, propagacja eventu

Wojciech M.:

To możesz sobie oznaczyć klasami linki które chcesz włączyć/wyłączyć.


$('a.internal').on(...)


A tutaj implementacja stopowania requestów, mozna przepisać pewnie na ich blokadę.

http://stackoverflow.com/questions/1802936/stop-all-ac...
Piotr S.

Piotr S. PHP - Symfony 2/3
Developer

Temat: jquery, propagacja eventu

Przez link wewnętrzny rozumiesz po prostu href="#whatever" ? Wtedy:

$("a:not([href^='#'])").on(...);

Następna dyskusja:

jQuery czy Prototype




Wyślij zaproszenie do