6
votes

Jquery.Hover ne fonctionne pas pour l'élément dynamique

Voici mon code

$(".inboxfeedlist li").bind('hover',function(){})


1 commentaires

Pouvez-vous simuler votre situation aussi étroitement que possible sur jsfiddle.net ?


8 Réponses :


3
votes

Essayez Live

$(".inboxfeedlist li").live('hover',function(){});


0 commentaires

1
votes

Utiliser délégué ou live pour lier les événements. Cela s'assurera que tout ce qui ajoute de manière dynamique sera également lié au gestionnaire d'événements.


0 commentaires

1
votes

sonne comme si vous avez besoin Live ou délégué . Le délégué est préféré

$(document.body).delegate(".inboxfeedlist li", "hover", function(){
        alert('');
});


0 commentaires

0
votes
$('.inboxfeedlist li').live('hover', function(e) { alert(''); });
jQuery livejQuery delegate

0 commentaires

3
votes

Utilisez la méthode en direct:

$(".inboxfeedlist li").live('hover', function(e){alert('');});


4 commentaires

Vous apprenez quelque chose de nouveau quotidien ..., vous demandez toujours quel serait l'affaire d'utilisation pour cela? N'a pas encore eu de problème, cela aurait requis cela.


Je l'utilise pour quand je bascule quelque chose comme dans $ (". Menu Li"). Survol (fonction () {$ (". Sous-menu", this) .toggle ()}). Étant donné que la bascule dépend de l'état actuel de l'élément, il peut être utilisé pour la survolée et la survolée.


Pourquoi .Live («survol» ... fonctionne mais pas .hover sur un élément dynamique?


À partir de JQuery 1.7, la méthode .Live () est obsolète. Utiliser .on () pour attacher des gestionnaires d'événements. Les utilisateurs de versions plus anciennes de JQuery doivent utiliser .Delegate () de préférence à .Live (). API.JQUERY.com/Live



38
votes

Live devenir obsolète à JQuery 1.9. Nous pouvons utiliser sur avec sourisenter et mouseleave événements à la place: xxx

pour une raison quelconque je ne peux pas Utilisez survol avec sur . Cela ne fonctionne tout simplement pas. Mais, d'après ce que j'ai lu, Hover est juste une adaptation de Mouseener et de Mouseleave, c'est donc bien. ( https://stackoverflow.com/a/4463384/1031340 )

Si vous ne le faites pas Besoin de supporter IE6, je vous recommande d'utiliser : survol sur votre CSS (s'il s'agit d'un changement uniquement dans CSS, l'exemple ci-dessus).


3 commentaires

Il est important d'utiliser l'événement "On" sur l'élément qui n'a pas été modifié dynamiquement.


Dans certains cas où nous voulons montrer / masquer des trucs, la combinaison MouseNer / Mouseleave fonctionne mieux pour moi


Mouseover n'est pas la syntaxe appropriée, Mouseener doit être utilisée: API.JQUERY.com/on/ # Notes supplémentaires



0
votes

Vous pouvez utiliser quelque chose comme ceci: xxx


0 commentaires

0
votes

Voici l'utilisation et les détails de ces fonctions

http://api.jquerery.com/live/

$ (sélecteur) .Live (événements, données, gestionnaire); // jQuery 1.3 +

$ (document) .Delegate (sélecteur, événements, données, gestionnaire); // jQuery 1.4.3 +

$ (document) .on (événements, sélecteur, données, gestionnaire); // jQuery 1.7 +


0 commentaires