我有一个网站应用程序有一个搜索栏。除了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);
}
两个警报都显示未定义。
请告诉我这里出了什么问题。
答案 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()
因为它强制数据类型,所以你看到的可能不是实际值。