Jquery在安卓设备上的keyup事件无法触发

9

我没有在iPhone上测试过这段代码,但我确定(已经测试过)它不适用于安卓手机:

 $('#search').live('keyup',function(key){
          if(key.which == 13){
            /*ANIMATE SEARCH*/
            _key = $(this).val();
            $("#wrapper").html("");
                $('#wrapper').hide(0).load('results.html').fadeIn(800);
                $('#search-fade').val(_key).fadeIn();
          }
      });

为了更好地解释:
我有一个简单的
<input type="text" name="search" id="search"/>

不知道为什么,但这段代码在安卓手机上无法正常工作。

有什么想法吗?


2
你应该尝试使用on()而不是live(),因为live()已经被弃用了。 - The System Restart
我已经审查了可用的信息并更改了我的答案。 - user1051870
2个回答

10
$(document).on('keyup','#search', function() {
   // code
});
或者
$(document).delegate('#search', 'keyup', function() {
    // code
});

你还可以在这里看到


1
如果有人遇到这个问题,应该是“delegate”而不是“delegete”。 - stephen mc
2
嗯,我尝试了这个方法,但对我来说并没有起作用。现在有更好的解决方案吗? - turbo2oh

5

我的解决方案(与jQuery 1.7.1一起使用):

$('#search').live('input paste', yourFunction)

提示:

使用.on()代替.live(),因为:

  • .on()更快
  • .live()已被弃用

jQuery 1.7+ .on() vs .live()评论

尝试这个:

$(document).on('input paste', '#search', yourFunction)

我真的没有解决这个问题,因为折叠菜单内的输入是可以的,并且事件已经绑定,但是在同一页但不在折叠菜单中的输入框中,在Android键盘中显示箭头而不是搜索按钮 :/ - itsme

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接