20

我有这个代码:

<script>
     $('#searchInput').keyup(function() {
               alert('Handler for .keyup() called.');
     });
</script>

这个输入:

<input id='searchInput' type='text' placeholder='Search other alumni users' />

但是当我按下一个键时,警报不会出现......我已经包含了 jQuery 脚本。

4

5 回答 5

46

将您的代码更改为

$(function(){ // this will be called when the DOM is ready
  $('#searchInput').keyup(function() {
    alert('Handler for .keyup() called.');
  });
});

以确保在构建 jQuery 集时存在 DOM 元素。

于 2013-01-19T16:50:25.877 回答
9
$(document).ready(function() {
  $('#searchInput').keyup(function() {
    alert('Handler for .keyup() called.');
  });
});

或者

$(function() { 
  $('#searchInput').keyup(function() {
    alert('Handler for .keyup() called.');
  });
});
于 2013-01-19T17:05:15.460 回答
3

keyup/keydown似乎只适用于document.ready.

如果您从页面加载后更改或注入的元素触发事件,这些事件将不会触发。

查找或创建在加载时存在的要监视的元素的父元素,然后将事件设置为从该父元素触发可以绕过这一点。

于 2017-03-03T21:34:18.703 回答
0

这对我有用:




    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

于 2014-02-14T20:56:12.193 回答
0

就我而言,我在$(document).ready(function () {});

By changing the order of my Keyup functions i.e. placing them at the top... within document ready seemed to do the trick. My guess is that one of the other functions was breaking they keyup function for what ever reason?

于 2017-11-09T15:30:45.217 回答