3

Comment trouver mouseclick d'abord et si vous n'avez pas cliqué, alors allez mouseover?Comment trouver le clic de souris en premier et si vous n'avez pas cliqué, puis allez au-dessus de la souris

J'avais implémenté deux types de fonctionnalités dans deux événements souris. Un en mouseover et l'autre en mouseclick.

Si j'ai cliqué, je dois d'abord déclencher l'événement mouseclick, au lieu de l'événement mouseover. Je sais que par défaut, mouseover est déclenché en premier. Mais comment réaliser ce type de scénario.

code:

$('.example').mouseover(function (event) { 
    // ... 
    //mouse over logic 
    // ... 
}); 

$('.example').mouseclick(function (event) { 
    // ... 
    //mouse click logic 
    // ... 
}); 

Note:

Alos, j'ai essayé avec minuterie, définir des indicateurs de contrôle, mais dans chaque essai, ne mouseover est triggerd premier. Les deux mouseover et mouseclick ont des fonctionnalités différentes. Si les deux sont identiques, alors nous pouvons mettre en commun . Mais, ici, l'affaire est différente. J'ai aussi cherché sur le net pour cela. Mais rien n'a aidé jusqu'à maintenant. Merci.

+0

Je rmé pour montrer les informations uniquement sur les 'mouseover' –

+2

comment savez-vous si l'utilisateur a l'intention de cliquer ou mouseover? – madalinivascu

+0

oui, c'est le problème. Essayer de réaliser ce scénario. –

Répondre

0

Utilisez les éléments suivants:

var timer; 
$(".example").on("mouseenter",function(e){ 
     timer=setTimeout(function(){ 
      // onmouseenter if not clicked 
      $(".example").css({background:"red"}); // for testing 
     }, 2000); 
}); 

$('.example').click(function (event) { 
    clearTimeout(timer); // Don't call the onmouseenter 
    $(".example").css({background:"blue"}); // for testing 
}); 

https://jsfiddle.net/ozgvfjzs/

+0

Le code ci-dessus déclenche l'événement' mouseenter' et s'exécute, après le 'mouseclick' l'événement s'exécute lorsque la souris a été cliquée. –

+0

@JohnStephen ajoute simplement une autre variable pour vérifier si 'click' a été exécutée, puis ajoute une instruction' if' dans la fonction 'timeout' – Ted

+0

@ASK, Non. Ca ne fonctionne pas. Après avoir cliqué, la fonctionnalité 'mouseenter' ne fonctionne pas. 'isNotClicked' est dans un état faux. Donc, ce n'est pas entrer dans la logique 'mouseenter ' –

0

Qu'en est-définir l'événement mouseover en cas de clic?

Exemple:

$('.example').mouseclick(function (event) { 
    // ... 
    //mouse click logic 
    // ... 
    $(body).bind('onmouseover', '.example'){ 
     // mouseover logic 
    } 
}); 

Je ne l'ai pas testé dur ...

0

Vous avez 2 options:

  • déclencher l'événement manuellement:

    $(this).trigger('mousehover'); 
    

    Placez-le à l'intérieur de la poignée de clic r.

  • Enregistrez le gestionnaire dans une variable et exécutez-le manuellement à l'intérieur du gestionnaire de clic.

devrait être assez facile à mettre en œuvre vous-même