Maison >interface Web >js tutoriel >Solution au problème selon lequel trigger() dans jquery ne peut pas déclencher le survol event_jquery

Solution au problème selon lequel trigger() dans jquery ne peut pas déclencher le survol event_jquery

WBOY
WBOYoriginal
2016-05-16 16:00:251219parcourir

Je travaillais sur un projet aujourd'hui et j'ai rencontré un problème que je n'avais jamais rencontré auparavant, alors j'en ai pris note.

1. Explication de la méthode de déclenchement

Voici l'explication officielle :

Copier le code Le code est le suivant :

Description : exécute tous les gestionnaires et comportements attachés aux éléments correspondants pour le type d'événement donné.

Utilisation :
.trigger( eventType [, extraParameters] )

Le eventType comprend des événements javascript intégrés, des événements ajoutés par jQuery et des événements personnalisés. Par exemple :

$('#foo').bind('click', function()
{
 alert($(this).text());
});
$('#foo').trigger('click');
$('#foo').bind('custom', function(event, param1, param2)
{
 alert(param1 + "\n" + param2);
});
$('#foo').trigger('custom', ['Custom', 'Event']);

est très puissant et est souvent utilisé lors de l'initialisation de la page.

2. Le déclencheur rencontre le survol

var $search=$('#header .search');
$search.find('li').hover(function()
{
 alert(1);
},function()
{
 alert(2);
});
$search.find('li').eq(0).trigger('hover');

Le survol ne peut pas être déclenché. Mais :

var $search=$('#header .search');
$search.find('li').click(function()
{
 alert(1);
},function()
{
 alert(2);
});
$search.find('li').eq(0).trigger('click');

Le clic de déclenchement est normal !

Solution :

var $search=$('#header .search');
$search.find('li').hover(function()
{
 alert(1);
},function()
{
 alert(2);
});
$search.find('li').eq(0).trigger('mouseenter');//hover修改为mouseenter/mouseleave/mouseover/mouseout

La même situation existe avec jQuery.live(), mais l'utilisation de live n'est pas recommandée dans les versions postérieures à 1.7. Utilisez plutôt on().

Ce qui précède représente l’intégralité du contenu de cet article, j’espère que vous l’aimerez tous.

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn