Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: js/jquery "dosłownie" jednorazowe wywołanie funkcji po kliknięciu linka, jak?
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
dexter21
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
nospor
np. ustawiasz zmienną JAKAS na true.

Teraz w linku dajesz:
...onclick="if (JAKAS) mojafunkcja(); JAKAS=false;return false;"....
i już.
Arcioch
Tak masz rację chyba że kod ma działać też np po odświeżeniu strony wink.gif wtedy musisz zapisać gdzieś że dany użytkownik kliknął już w link i zawsze sprawdzać czy istnieje ta zmienna wink.gif

Edit 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>
viking
Jquery ma coś takiego jak http://api.jquery.com/one/
Żeby zapamiętać możesz użyć cookies albo localstorage.
dexter21
super ten patent z jquero'wym .one - to działa:-)

Wielkie Dzięki:-)
viking
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.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.