j'ai ce code:
<script>
$('#searchInput').keyup(function() {
alert('Handler for .keyup() called.');
});
</script>
et cette entrée:
<input id='searchInput' type='text' placeholder='Search other alumni users' />
mais quand j'appuie sur une touche d'alerte, le script jQuery est déjà inclus.
Changez votre code en
$(function(){ // this will be called when the DOM is ready
$('#searchInput').keyup(function() {
alert('Handler for .keyup() called.');
});
});
pour vous assurer que l'élément DOM existe lors de la création de l'ensemble jQuery.
$(document).ready(function() {
$('#searchInput').keyup(function() {
alert('Handler for .keyup() called.');
});
});
Ou
$(function() {
$('#searchInput').keyup(function() {
alert('Handler for .keyup() called.');
});
});
keyup
/keydown
semblent ne fonctionner que sur les éléments présents à document.ready
.
Si vous déclenchez votre événement à partir d'éléments modifiés ou injectés post-chargement de page, ces événements ne se déclencheront pas.
La recherche ou la création d'un parent de l'élément à surveiller présent au chargement, puis la définition de l'événement à déclencher à partir de cet élément parent peuvent éviter ce problème.
Dans mon cas, j'avais plusieurs fonctions dans la $(document).ready(function () {});
En modifiant l’ordre de mes fonctions Keyup, c’est-à-dire en les plaçant au sommet ... dans le document prêt, semblait faire l’essentiel. Je suppose que l'une des autres fonctions a été de casser leur fonction de clavier pour une raison quelconque?
Cela a fonctionné pour moi:
jQuery(".divForinput1 > input").keyup(function() {
var value = $( this ).val();
jQuery( ".divForinput2 > input" ).val( value );
}).keyup();
//the .keyup on the end maybe what many are missing