2010-06-02 4 views
2

J'ai une fonction jQuery qui provoque des erreurs d'affichage dans IE7. Je veux simplement désactiver la fonction uniquement pour IE7 au lieu de régler les erreurs d'affichage.Comment désactiver une fonction jQuery dans IE7 uniquement?

Voici le code qui appelle la fonction:

$(document).ready(function() { 
    $("select, input:checkbox, input:radio, input:file").uniform(); 
}); 

Alors, quelle est la meilleure pratique pour cibler et désactiver cette callout pour IE7 seulement?

+0

Peut-être http://api.jquery.com/jQuery.support/. Testez le navigateur à l'aide de jQuery.support. Voir http://stackoverflow.com/questions/584285/detecting-ie6-using-jquery-support – subv3rsion

Répondre

12

jQuery.browser vous permet d'afficher la version de l'agent utilisateur, même si elle n'est pas recommandée par l'équipe jQuery. Au lieu de cela, regardez jQuery.support qui est recommandé pour la 'détection de fonctionnalité' afin de déterminer quel navigateur vous utilisez.

L'utilisation de .browser $, quelque chose comme (non testé):

if (!($.browser.msie && $.browser.version == 7.0)){ 
... 
} 

ferait l'affaire

+0

Je pense que la logique rejettera tout IE, pas seulement 7? Essayez si (! ($. Browser.msie && $ .browser.version == 7.0)) {... – Ryley

+0

bon appel, fait celui en place assez rapidement ... fixe – brad

+0

Ceci est une excellente information. Je pense que je pourrais même avoir besoin d'une autre poussée quant à ce qu'il faut placer dans cette déclaration pour désactiver la fonction. Toutes les idées, je suis assez nouveau à cette idée ... – Adam

2

Il est jamais amusant, mais cela fonctionnera ...

<!--[if IE 7]> 
<script type="text/javascript"> 
    $.fn.uniform = function() { } 
</script> 
<![endif]--> 

Browser la détection via Javascript n'est jamais fiable, mais cela devrait être fait car c'est un commentaire de balisage valide et IE est le seul navigateur (que je connaisse) qui le renifle.

Questions connexes