2010-12-28 5 views
1

Ich habe ein Problem. - nur in FirefoxMit 'jQuery' eine 'aktive' Klasse umschalten, der Stil bleibt bestehen, wenn man erneut auf die Schaltfläche klickt, aber die Klasse in Firefox entfernt

Wenn ich jQuery verwenden, um eine Klasse "aktiv" auf einer Verknüpfung umzuschalten. Der aktive Stil bleibt bestehen, wenn ich erneut auf den Link klicke. Es bleibt sichtbar, bis ich irgendwo anders auf der Seite klicke, aber nur in Firefox, aber die Klasse wurde entfernt.

Code:

$('#quick-add-click').click(function() { 
    $(this).find('a').toggleClass('active'); 
}); 

Wer noch keine ähnliche Probleme haben? Gibt es eine einfache Lösung?

+0

Sie das bedeuten Sie: aktiv Stil oder .active Klasse? – David

+0

Können Sie eine Demo auf [JS Fiddle] (http://jsfiddle.net/) oder [JS Bin] (http://jsbin.com/) veröffentlichen, die dieses Verhalten reproduzieren? –

Antwort

0

OK so wie ich es (in einer Hacky Weise) befestigt war onfocus="blur()" zu dem Ankerelement hinzufügen

0

Minimal Beispiel kann nicht dieses Verhalten auf OSX Firefox sehen

<!DOCTYPE html> 
<html> 
    <head> 
     <title>Test</title> 
     <style> 
      a.active { color: #f00; } 
     </style> 
     <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script> 
     <script> 
      $(function() { 
       $('#quick-add-click').click(function() { 
        $(this).find('a').toggleClass('active'); 
       }); 
      }); 
     </script> 
    </head> 
    <body> 
     <div id="quick-add-click"> 
      <a href="#">Foobar</a> 
     </div> 
    </body> 
</html> 

Könnten Sie mit Firebug überprüfen, wo dieser Stil herkommt, wenn aktive Klasse mehr vorhanden ist?

0

Verwenden Sie Mootools oder wird Mootools geladen, auch wenn Sie es nicht verwenden (geschieht automatisch mit Joomla-Systemen). Ich hatte ein Problem mit Firefox/Mootools/VEMap (Bing Maps). Vielleicht haben Sie ein ähnliches Problem.

0

Konnte es nicht reproduzieren.

Aber vielleicht können Sie testen, ob es ohne Umschalter funktioniert?

$('#quick-add-click').click(function() { 
    if($(this).find('a').hasClass('active')) { 
    $(this).find('a').removeClass('active'); 
    } else { 
    $(this).find('a').addClass('active'); 
    } 
});