jQuery keyup事件无法正常工作

时间:2014-04-08 06:04:01

标签: jquery

$(function(){

  $("input.custom").hide();
  $("input.custom").wrap("<div class='customInput'></div>");
  $(".customInput").html("Type");

  $(document).on("keyup", ".customInput", function(event){
    alert(event.keyCode);
  });

});

HTML

...
<body>
  <input type="text" class="custom" />
</body>
...

我有一个像这样的代码,如果在.customInput聚焦时按下键盘按钮,它应该给出键码的警告..但是它不起作用

很像THIS
Jsfiddle HERE

1 个答案:

答案 0 :(得分:2)

因为您没有类customInput的输入 这样做:

$(document).on("keyup", ".custom", function(event){
    alert(event.keyCode);
});

或者,如果要对事件进行绑定,请执行div.customInput元素:

// Add tabIndex to div - this makes the div selectable and enables keyboard events on it
$("input.custom").wrap("<div class='customInput' tabIndex='1'></div>");

$('.customInput').keyup(function(event){
    alert(event.keyCode);
});

这是第二个选项的小提琴 - http://jsfiddle.net/WQL4X/4/
通常div不会捕获关键事件,但如果它是可选择的,它就会捕获。要使其可选,您必须提供tabIndex属性。就是这样。