2017-10-02 1 views
0

J'essaye de faire l'événement keyDown de déclenchement sur le clic d'un bouton. Mais ça ne fonctionne pas.L'événement Javascript ne se déclenche pas

$("#button").click(function() { 
var e = jQuery.Event("keydown"); 
e.keyCode = 37; 
$(this).trigger(e); 
return false; 
}); 

Mais l'événement ne se déclenche pas. Quelqu'un peut-il proposer s'il vous plaît?

+0

https://stackoverflow.com/a/8692335/4298881, essayez probablement e.keyCode = e.which = 37 ; comme dit dans le commentaire. – Surely

+0

[Oui, l'événement est déclenché.] (Https://jsfiddle.net/ort0tjro/) Mais cette zone est [très bien couverte par les questions précédentes] (/ search? Q =% 5Bjs% 5D + simulate + keydown), Qu'est-ce qui ne répond pas à votre question dans les réponses à ces questions? –

Répondre

2

Il me semble que ça fonctionne.

Essayez l'extrait ci-dessous avec la fonction de test:

$(document).ready(function() { 
 
    $("#button").click(function() { 
 
    var e = jQuery.Event("keydown"); 
 
    e.keyCode = 37; 
 
    $(this).trigger(e); 
 
    console.log(e); 
 
    return false; 
 
    }); 
 
}); 
 

 
// test trigger 
 
$(window).keydown(function(e) { 
 
    key = e.keyCode ? e.keyCode : e.which; 
 
    if (key === 37) { 
 
    alert(`Left arrow triggered, (keyCode ${key})`); 
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<button id="button">Trigger key 37 (left arrow)</button>