2013-07-11 8 views
5

Ponieważ metoda zdarzenia jQuery .toggle jest przestarzała. Co mamy użyć do symulacji tego zdarzenia (kliknięcia alternatywne)?Zdarzenie jQuery .toggle przestarzałe, co należy użyć?

+0

można podać kod ? – Dom

+0

Duplikat http://stackoverflow.com/questions/2459153/alternative-to-jquerys-toggle-method-that-supports-eventdata –

+0

@jahroy Nie chcę metody animacji ... –

Odpowiedz

4

Dodaj poza document.ready

$.fn.clicktoggle = function(a, b) { 
    return this.each(function() { 
     var clicked = false; 
     $(this).click(function() { 
      if (clicked) { 
       clicked = false; 
       return b.apply(this, arguments); 
      } 
      clicked = true; 
      return a.apply(this, arguments); 
     }); 
    }); 
}; 

następnie użyć następujących replikować .toggle funkcjonalność:

$("#mydiv").clicktoggle(functionA,functionB); 

znaleźć na JQuery Forums

+0

Przepraszam, ale co to właściwie jest? Czy to funkcja, którą napisałeś? Dlaczego $ .fn.clicktoggle i jak wywołujesz tę funkcję? Dziękuję za Twój anwser! –

+0

Powyższy kod rozszerza obiekt jQuery przez dodanie nowej metody. Dodałeśby ten kod do obsługi "_on ready_". Następnie możesz wywołać 'clicktoggle()' tak, jakby była to metoda jQuery. Możesz przeczytać o dodaniu metody jQuery [tutaj] (http://stackoverflow.com/q/12093192/778118). – jahroy

+0

Bardzo ładne, dziękuję za edycję! –

0
var i = 0;  
$('button').click(function() { 
    if (i == 0){   
     $('div').css({background: 'red'}) 
     i++; 
    } else { 
     $('div').css({background: 'yellow'}) 
     i = 0; 
    } 
});