web-dev-qa-db-fra.com

jQuery .keyup () ne fonctionne pas

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.

13
omerjerk

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.

36
Denys Séguret
$(document).ready(function() {
  $('#searchInput').keyup(function() {
    alert('Handler for .keyup() called.');
  });
});

Ou

$(function() { 
  $('#searchInput').keyup(function() {
    alert('Handler for .keyup() called.');
  });
});
7
Anujith

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.

2
Josh Thorne

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?

0
Anthony Griggs

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

0
Alex Williams