dexter21
28.09.2012, 14:15:54
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
28.09.2012, 14:18:02
np. ustawiasz zmienną JAKAS na true.
Teraz w linku dajesz:
...onclick="if (JAKAS) mojafunkcja(); JAKAS=false;return false;"....
i już.
Arcioch
28.09.2012, 14:30:44
Tak masz rację chyba że kod ma działać też np po odświeżeniu strony

wtedy musisz zapisać gdzieś że dany użytkownik kliknął już w link i zawsze sprawdzać czy istnieje ta zmienna

Edit

Przykład do postu Nospora
<script type="text/javascript" src="http://code.jquery.com/jquery-1.8.1.min.js"></script> $(function() {
var funckja = false;
$(".klik").click(function() {
if(funckja == false){
alert('asd');
funckja = true;
}
return false;
});
});
<a href="#" class="klik">kliknij
</a>
viking
28.09.2012, 14:54:10
Jquery ma coś takiego jak
http://api.jquery.com/one/Żeby zapamiętać możesz użyć cookies albo localstorage.
dexter21
28.09.2012, 15:16:23
super ten patent z jquero'wym .one - to działa:-)
Wielkie Dzięki:-)
viking
28.09.2012, 15:17:02
Widzę że skasowałeś swój post ale miałeś podpięte 2 różne handlery
<!doctype html>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.8.1.min.js"></script> $(function() {
$("#tak").one('click',function(e) {
e.preventDefault();
alert('asd');
setTimeout(function(){$("#akcja").fadeIn("slow")},1000);
});
});
<a id="tak" href="#" class="">link
</a>
<a href="#" id="example3" onclick="$('#akcja').fadeOut('slow')"> <div id="akcja" style="display:none; position:absolute; font-size:12px; width:200px;">link 2
</div>
Brakuje ci też deklaracji DOCTYPE. Widzę również że korzystasz z jquery > 1.7 więc poczytaj w dokumentacji o on / off.