@Eggy: dziękuję bardzo. Trochę skomplikowane, sam bym na to nie wpadł chociaż próbowałem zagnieżdżać jakoś funkcję. Będę już wiedział na przyszłość. :)
Pomęczę Cię jeszcze trochę jeśli można ;). Nie to, że nie rozumiem tego co mi wysłałeś, ale jest możliwość napisania to jakoś łatwiej bez używania 'click'? Może opiszę szerzej co próbuję zrobić.
Klikam w przycisk i nadaje jakiemuś elementowi klasę np. "showfromtop". Klikam drugi raz i i nadaje mu
@PrawyKuba: Bez używania evetów, nie da się czegoś takiego osiągnąć. No bo niby skąd przeglądarka ma wiedzieć co zrobić po kliknięciu w przycisk? Musisz zdefiniować listiner, czy to przez metodę .on() z jQuery, czy przez .addEventListiner() Jak chcesz usunąć/dodać klasę możesz użyć .removeClass() i .addClass(). Ewentualnie możesz użyć .toggleClass() ale wtedy będziesz miał tylko jeden callback http://codepen.io/Eggy/pen/xVYpLO
Załóżmy, że mam zdarzenie
$('selektor').on('click', function() {
// tutaj togluje jakieś klasy po kliknięciu w selektor
});
W jaki sposób mogę wywołać callback, żeby obsłużyć drugie kliknięcie w ten sam selektor?
Czyli np.
//Przy pierwszym kliknięciu
$('button').on('click', function() {
$('div').css("display", "block");
});
//Przy drugim kliknięciu
$('button').on('click', function() {
$('div').css("display", "none");
});
Próbowałem tak:
$('button').on('click', function() {
$('div').css("display", "block");
}, function(){
$('div').css("display", "none");
);
Ale nie działa.
Pomęczę Cię jeszcze trochę jeśli można ;). Nie to, że nie rozumiem tego co mi wysłałeś, ale jest możliwość napisania to jakoś łatwiej bez używania 'click'? Może opiszę szerzej co próbuję zrobić.
Klikam w przycisk i nadaje jakiemuś elementowi klasę np. "showfromtop".
Klikam drugi raz i i nadaje mu
.on()z jQuery, czy przez.addEventListiner()Jak chcesz usunąć/dodać klasę możesz użyć .removeClass() i .addClass(). Ewentualnie możesz użyć .toggleClass() ale wtedy będziesz miał tylko jeden callback http://codepen.io/Eggy/pen/xVYpLO