Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JQuery] Hover + Unbind + Click + Bind
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
buggie
Witam,
cały dzisiejszy dzień męczę się z problemem zakodowania animacji guzików w JQuery. Guziki maja działać tak:
1. po najechaniu - zmiana tła
2. po zjechaniu - zmiana tła na wcześniejsze
3. po kliknęciu i rozjechaniu się akordeonu - zmiana tła (na to co po najechaniu - pkt. 1)
4. po kliknięciu w inny guzik (zwinięcie się akordeonu i rozwinięcie w innym miejscu) - zmiana tła poprzedniego guzika (na to z pkt. 2)

Prawie wszystko działa poza tym, że jak już się kliknie w guziki, usuwam hovery, żeby się nie nałożyły na click(), i jak klikam w kolejny guzik to niestety hovery nie wracają na starym guziku smile.gif
Może źle próbuję przywrócić hovery?

troche to zamotane... smile.gif kod poniżej. Może jakieś pomysły ?

  1. globalvariable = "";
  2.  
  3. $("#accordion h2").hover(
  4. function () {
  5. $(this).css({'background-color':'#fed906'});
  6. },
  7. function () {
  8. $(this).css({'background-color':'#28578f'});
  9. }
  10. ).mousedown(function()
  11. {
  12. if(globalvariable != ""){
  13. $(globalvariable).css({'background-color':'#28578f'});
  14. $(globalvariable).bind('mouseover');
  15. $(globalvariable).bind('mouseout');
  16. //alert(globalvariable);
  17. //return false;
  18. }else{
  19. //alert("pusty");
  20. //return false;
  21. }
  22.  
  23. }).mouseup(function()
  24. {
  25. globalvariable = "#"+$(this).attr('id');;
  26. $(globalvariable).unbind('mouseover');
  27. $(globalvariable).unbind('mouseout');
  28. $(globalvariable).css({'background-color':'#fed906'});
  29.  
  30. });
erix
Co to jest to globalvariable?
buggie
to jest zmienna, która przyjmuje jako wartość ID guzika.
erix
Wystaw gdzieś całość działającą, nie po to mamy debuggery, żeby z nich nie korzystać.
buggie
Hej, problem rozwiązany inny sposobem smile.gif

  1. (function($){
  2. $.fn.myhover={
  3. current:null,
  4. currentSub:null
  5. }
  6. })(jQuery);
  7.  
  8.  
  9. $(document).ready(function() {
  10.  
  11. $("#accordion h2").mousedown(function()
  12. {
  13. if($.fn.myhover.current!=null){
  14. $("#"+$.fn.myhover.current).css({'background-color':'#28578f'});
  15. }
  16. $(this).css({'background-color':'#fed906'});
  17. $.fn.myhover.current=$(this).attr('id');
  18.  
  19. })
  20.  
  21. $("#accordion h2").hover(
  22. function () {
  23. if($(this).attr('id')!=$.fn.myhover.current){
  24. $(this).css({'background-color':'#fed906'});
  25. }
  26. },
  27. function () {
  28. if($(this).attr('id')!=$.fn.myhover.current){
  29. $(this).css({'background-color':'#28578f'});
  30. }
  31. }
  32. );
  33.  
  34. })(jQuery);


Pozdrawiam.
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.