Android / Firefox:event.keycode在keyup上返回Undefined

时间:2017-12-13 09:26:53

标签: javascript android jquery firefox keyup

我有一个网站应用程序有一个搜索栏。除了Android设备上的Firefox之外,搜索栏在所有其他浏览器中都能正常运行。

我已提醒keyCode并为每个密钥获取未定义。

以下是我使用的代码。

domReady(function()
{
  var is_android = navigator.userAgent.toLowerCase().indexOf("android") > -1;
  var is_firefox = navigator.userAgent.toLowerCase().indexOf('firefox') > -1;

  if( is_firefox && is_android )
  {
    $('#search, #support-search').bind('input keyup', __search );
  }
  else
  {
    $('#search, #support-search').on( 'keyup', __search );
  }

}

var __search = function( event )
{
  var kc = event.which || event.keyCode;
  alert("KC:"+kc);
  alert("event.keyCode:"+event.keyCode);
}

两个警报都显示未定义。

请告诉我这里出了什么问题。

1 个答案:

答案 0 :(得分:0)

强迫Android和Firefox使用bind()的条件毫无意义。在所有情况下都应使用on()domReady()函数可以成为附加事件的单行程序,如下所示:

domReady(function()
  $('#search, #support-search').on('input keyup', __search);
}

var __search = function(e) {
  var kc = e.which || e.keyCode;
  console.log("KC:" + kc);
  console.log("event.keyCode:" + e.keyCode);
}

另请注意使用console.log()而不是alert()进行调试。避免使用alert()因为它强制数据类型,所以你看到的可能不是实际值。