Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> js/jquery "dosłownie" jednorazowe wywołanie funkcji po kliknięciu linka, jak?
dexter21
post
Post #1





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 21.05.2010

Ostrzeżenie: (0%)
-----


Hej wszystkim,
chcę po kliknięciu linka wywołać jednarozowo funkcję,
ale bez możliwości ponownego jej wywołania, po kolejnym kliknięciu...

klikam pierszy raz - wywołuje się funkcja,
klikam drugi, trzeci, itd. i już funkcja się nie wywołuje...

pozdro

Ten post edytował dexter21 28.09.2012, 14:17:27
Go to the top of the page
+Quote Post
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




np. ustawiasz zmienną JAKAS na true.

Teraz w linku dajesz:
...onclick="if (JAKAS) mojafunkcja(); JAKAS=false;return false;"....
i już.
Go to the top of the page
+Quote Post
Arcioch
post
Post #3





Grupa: Zarejestrowani
Postów: 324
Pomógł: 110
Dołączył: 18.09.2012

Ostrzeżenie: (0%)
-----


Tak masz rację chyba że kod ma działać też np po odświeżeniu strony (IMG:style_emoticons/default/wink.gif) wtedy musisz zapisać gdzieś że dany użytkownik kliknął już w link i zawsze sprawdzać czy istnieje ta zmienna (IMG:style_emoticons/default/wink.gif)

Edit (IMG:style_emoticons/default/wink.gif)

Przykład do postu Nospora

  1. <meta charset="UTF-8">
  2. <script type="text/javascript" src="http://code.jquery.com/jquery-1.8.1.min.js"></script>
  3. $(function() {
  4. var funckja = false;
  5.  
  6. $(".klik").click(function() {
  7.  
  8. if(funckja == false){
  9. alert('asd');
  10. funckja = true;
  11. }
  12.  
  13. return false;
  14. });
  15.  
  16. });
  17. </head>
  18. <a href="#" class="klik">kliknij</a>
  19. </body>
  20. </html>


Ten post edytował Arcioch 28.09.2012, 14:36:44
Go to the top of the page
+Quote Post
viking
post
Post #4





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


Jquery ma coś takiego jak http://api.jquery.com/one/
Żeby zapamiętać możesz użyć cookies albo localstorage.
Go to the top of the page
+Quote Post
dexter21
post
Post #5





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 21.05.2010

Ostrzeżenie: (0%)
-----


super ten patent z jquero'wym .one - to działa:-)

Wielkie Dzięki:-)
Go to the top of the page
+Quote Post
viking
post
Post #6





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


Widzę że skasowałeś swój post ale miałeś podpięte 2 różne handlery

  1. <!doctype html>
  2. <meta charset="UTF-8">
  3. <script type="text/javascript" src="http://code.jquery.com/jquery-1.8.1.min.js"></script>
  4. $(function() {
  5.  
  6. $("#tak").one('click',function(e) {
  7. e.preventDefault();
  8. alert('asd');
  9. setTimeout(function(){$("#akcja").fadeIn("slow")},1000);
  10. });
  11.  
  12. });
  13. </head>
  14. <a id="tak" href="#" class="">link</a>
  15.  
  16. <a href="#" id="example3" onclick="$('#akcja').fadeOut('slow')">
  17. <div id="akcja" style="display:none; position:absolute; font-size:12px; width:200px;">link 2</div>
  18. </a>
  19. </body>
  20. </html>


Brakuje ci też deklaracji DOCTYPE. Widzę również że korzystasz z jquery > 1.7 więc poczytaj w dokumentacji o on / off.

Ten post edytował viking 28.09.2012, 15:22:50
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 07:01