![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 565 Pomógł: 15 Dołączył: 11.10.2010 Ostrzeżenie: (20%) ![]() ![]() |
Witajcie
Chcę wykonać takie coś, żeby ktoś na stronie mógł raz wykonać funkcję. W tym celu piszę sobie var used;. Pod tym nadaję temu wartość 0. Następnie sprawdzam czy used == 0, jeśli tak, to coś się wykonuje, a następnie nadaję zmiennej used wartość 1. Problem w tym, że po nadaniu wartości 1 do zmiennej used nadal jest 0.
Odświeżam. Ten post edytował Dominator 3.10.2012, 21:30:04 |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 324 Pomógł: 110 Dołączył: 18.09.2012 Ostrzeżenie: (0%) ![]() ![]() |
Odpowiadam
![]() ![]() ![]()
Live ![]() Ten post edytował Arcioch 3.10.2012, 22:41:41 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 1 890 Pomógł: 339 Dołączył: 14.12.2006 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
@Dominator, domyślam się, że Twój skrypt wrzucony jest gdzieś w sekcji <head />. Znaczy to, że podczas jego wykonywania nie ma jeszcze drzewa DOM dokumentu, czyli nie istnieje $(".box"), przez co animacja nie jest wykonywana, a tym samym funkcja po jej skończeniu (w niej ustawiasz wartość zmiennej). Zainteresuj się metodą ready().
Inna rzecz, że jeśli wklejony przez Ciebie kod jest zamknięty w jakiejś funkcji, to za każdym jej wywołaniem, przed sprawdzeniem warunku ustawiasz wartość used na 0. Ten post edytował sowiq 3.10.2012, 22:51:58 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 565 Pomógł: 15 Dołączył: 11.10.2010 Ostrzeżenie: (20%) ![]() ![]() |
Odpowiadam ![]() ![]() ![]()
Live ![]() Dzięki za kod, lecz nie chcę, aby coś się wykonało po kliknięciu bądź najechaniu tylko samym wywoływaniu. |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 324 Pomógł: 110 Dołączył: 18.09.2012 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 565 Pomógł: 15 Dołączył: 11.10.2010 Ostrzeżenie: (20%) ![]() ![]() |
W tym przypadku one() już nie działa http://jsfiddle.net/GZmEj/4/
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 1 890 Pomógł: 339 Dołączył: 14.12.2006 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
@Arcioch, jesteś kolejną osobą utrudniającą sobie życie / mieszającą w głowach mniej doświadczonym.
Jaki sens ma umieszczanie metody one() w funkcji, która jest wykonywana na event 'ready'? Że niby będzie zabezpieczała przed kolejnym eventem 'ready', czy jak? Bo może czegoś nie czaję. [edit] @autor Kod $("button").one('click', shower);
Ten post edytował sowiq 4.10.2012, 15:16:13 |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 324 Pomógł: 110 Dołączył: 18.09.2012 Ostrzeżenie: (0%) ![]() ![]() |
@Sowiq w tym przypadku masz rację moje niedopatrzenie
![]() ![]() |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 1 890 Pomógł: 339 Dołączył: 14.12.2006 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
@Arcioch, spoko, człowiek uczy się całe życie.
Jeszcze jedna uwaga do Twojego przykładu. Metody one() nie można zastosować tak jak napisałeś: $(element).one().cokolwiek(). Co prawda jQuery jest na tyle elastyczne, że nie wyrzuci błędu, ale ta metoda nie zrobi absolutnie nic. Według tego, co mówi opis API, metoda ta przyjmuje dwa obowiązkowe argumenty - events i handler + opcjonalny data. Ale to tylko tak w ramach uściślenia. |
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 324 Pomógł: 110 Dołączył: 18.09.2012 Ostrzeżenie: (0%) ![]() ![]() |
@Sowiq dzięki za rady
![]() Wracając do tematu Dominator poradziłeś sobie? ![]() |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 565 Pomógł: 15 Dołączył: 11.10.2010 Ostrzeżenie: (20%) ![]() ![]() |
Nadal nie poradziłem sobie.
|
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 1 890 Pomógł: 339 Dołączył: 14.12.2006 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
@Dominator, pokaż swoją całą funkcję, której działanie chcesz blokować. Bo jeśli jest to cały kod z Twojego pierwszego postu, to w linijce 2. i tak ustawiasz 'used' za każdym razem na '0'.
|
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 565 Pomógł: 15 Dołączył: 11.10.2010 Ostrzeżenie: (20%) ![]() ![]() |
|
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 1 890 Pomógł: 339 Dołączył: 14.12.2006 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Kod var functionRan = false; function createElement(){ if(functionRan){ return false; } $(".box").animate({marginTop: '+=1px'}, 500, function(){ $(".status").slideToggle(); }); functionRan = true; return true; } Z Bogiem. |
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 565 Pomógł: 15 Dołączył: 11.10.2010 Ostrzeżenie: (20%) ![]() ![]() |
Działa, bardzo dziękuję za fachową pomoc
![]() |
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.08.2025 - 14:37 |