2010-01-20 6 views
0

J'ai récemment décidé d'essayer jQuery 1.4, excité que j'aurais enfin le soutien pour les gestionnaires d'événements en direct qui travaillent pour les événements de changement dans IE. Cependant, il semble qu'ils ne fonctionnent pas toujours. Si j'essaie d'assigner un gestionnaire de changement en direct sur un élément select, cela ne fonctionne pas quand je le change dans IE.les gestionnaires de changement en direct dans jQuery 1.4 ne fonctionnent pas pour les éléments sélectionnés dans IE

J'ai essayé ceci dans IE 6, 7 et 8. Dans tous les autres navigateurs que j'ai essayés (Firefox, Chrome, Safari), cela fonctionne très bien. J'ai essayé de placer la commande pour assigner le gestionnaire dans la fonction prête, et cela n'a pas arrangé cela.

Est-ce que quelqu'un a une idée de ce qui cause ce problème ou ce que je peux faire pour le réparer? Est-ce que je fais quelque chose de mal, ou est-ce un bug dans jQuery? Voici un exemple:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
    "http://www.w3.org/TR/html4/loose.dtd"> 
<html><head> 
<meta http-equiv='Content-Type' content='text/html; charset=UTF-8'> 
<title>jQuery live change handler test</title> 
</head> 
<body> 
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script> 
<select id="test"> 
    <option value="a">a 
    <option value="b">b 
</select> 
<script type="text/javascript"> 
$("#test").live("change", function() { 
    alert('hi'); 
}); 
</script> 
</body></html> 

Répondre

3

On dirait qu'il a été réparé. Je ne sais pas quand ça va vivre.

Ticket - http://dev.jquery.com/ticket/5851

GitHub commit - http://github.com/jquery/jquery/commit/435772e29b4ac4ccfdefbc4045d43f714e153381

+0

L'un des programmeurs a fait un post disant que le correctif sera publié vendredi. –

+0

Désolé, j'ai oublié de poster le lien. http://groups.google.com/group/jquery-dev/browse_thread/thread/e74de6015020d160#msg_25e7da221c65515b –

+0

Le correctif a été publié. Vous pouvez l'obtenir à http://jquery.com/. –

0

de here

événement Valeurs possibles: cliquez, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, keydown, keypress, keyUp

Actuellement non supporté: flou, focus, mouseenter, mouseleave, changement, soumettre

changer, mon ami, n'est pas encore soutenu par en direct

+2

C'est la documentation de jQuery 1.3. Voir ici pour 1.4 - http://api.jquery.com/live/ Il est dit - "A partir de jQuery 1.4, la méthode .live() prend en charge les événements personnalisés ainsi que tous les événements javascript Deux exceptions: Depuis le focus et le flou aren Il n'y a pas d'événements qui bouillonnent, nous devons utiliser focusin et focusout à la place. " –

+0

Chetan -vous avez raison !!! Mes excuses mikez !! – ram