Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [jQuery] Podwójne zdarzenie
.rmvb's
post
Post #1





Grupa: Zarejestrowani
Postów: 37
Pomógł: 0
Dołączył: 26.09.2012

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


Witam.
Zastanawiam się, w jaki sposób mogę przypisać jakby dwie rzeczy do jednego elementu.
Pokażę kod i wytłumaczę co chcę osiągnąć
  1. $(document).ready(function(){
  2. $("#menu-open").addClass("on");
  3. var szerokosc = $(window).width();
  4. $(".on").click(
  5. function()
  6. {
  7. $(".grey-panel").animate({width:"+="+szerokosc+"px"},1000);
  8. $('nav ul').delay( 200 ).animate({top:"+=40px" },1000);
  9. $("#menu-open").addClass("off").removeClass("on");
  10. });
  11.  
  12. $(".off").click(
  13. function()
  14. {
  15. $('nav ul').animate({top:"-=40px" },1000);
  16. $(".grey-panel").delay( 200 ).animate({width:"-="+szerokosc+"px"},1000);
  17.  
  18. $("#menu-open").removeClass("off");
  19. $("#menu-open").addClass("on");
  20.  
  21. });
  22. });


Chciałbym aby za pośrednictwem jednego przycisku otwierać i zamykać menu.
  1. <a id="menu-open" class=""></a>
  2. <div class="grey-panel">
  3. <ul>
  4. <li>jeden</li>
  5. <li>dwa</li>
  6. <li>trzy</li>
  7. <li>cztery</li>
  8. </ul>
  9. </div>

Po każdej akcji kliknięcia chciałem zmieniać klasę, aby kolejne kliknięcie otwierało inne zdarzenie. W efekcie tego co mam aktualnie, otwiera się jedynie zdarzenie od klasy on..
W jaki sposób mógłbym rozwiązać mój problem ?

Ten post edytował .rmvb's 5.09.2013, 14:43:31
Go to the top of the page
+Quote Post
skowron-line
post
Post #2





Grupa: Zarejestrowani
Postów: 4 340
Pomógł: 542
Dołączył: 15.01.2006
Skąd: Olsztyn/Warszawa

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


[JAVASCRIPT] pobierz, plaintext
  1. var isopen = false;
  2.  
  3. $('element').on('click', function(){
  4. if(isopen == false) {
  5. isopen = true;
  6. //otwieram
  7. }
  8. else
  9. {
  10. isopen = false;
  11. //zamykam
  12. }
  13. });
[JAVASCRIPT] pobierz, plaintext

jeżeli dobrze zrozumiałem.
Go to the top of the page
+Quote Post
.rmvb's
post
Post #3





Grupa: Zarejestrowani
Postów: 37
Pomógł: 0
Dołączył: 26.09.2012

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


Tak, właśnie o takie rozwiązanie mi chodziło, dzięki.

Tak pozatym, jest jakieś wytłumaczenie, dlaczego nie działało mi to na moich klasach, gdy próbowałem je dodawać i usuwać; po tym rozpoznawać?
Go to the top of the page
+Quote Post
buliq
post
Post #4





Grupa: Zarejestrowani
Postów: 559
Pomógł: 93
Dołączył: 4.03.2008
Skąd: Olsztyn

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


bo to nie było live()
Go to the top of the page
+Quote Post
styryl
post
Post #5





Grupa: Zarejestrowani
Postów: 223
Pomógł: 27
Dołączył: 16.04.2008
Skąd: Bakutilu

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


Cytat(buliq @ 6.09.2013, 11:00:30 ) *
bo to nie było live()


Zobacz dokumentacje: "As of jQuery 1.7, the .live() method is deprecated. Use .on() to attach event handlers. Users of older versions of jQuery should use .delegate() in preference to .live()."
Go to the top of the page
+Quote Post
buliq
post
Post #6





Grupa: Zarejestrowani
Postów: 559
Pomógł: 93
Dołączył: 4.03.2008
Skąd: Olsztyn

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


@styryl i co? Napisano ze zmienione? Więc gdzie problem?
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: 20.09.2025 - 07:51