我有一个网站应用程序具有搜索栏。搜索栏在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);
}
两个警报显示未定义。
请让我知道这里出了什么问题。
您的状况迫使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);
}
还请注意,在alert()
上使用console.log()
进行调试。避免使用alert()
作为胁迫数据类型,因此您看到的可能不是实际值。