这是我第一次在mobile Apps
上工作。 keyUp
事件不发射如果我按backspace
按钮。backSpace在Android手机中没有触发按键事件
我作了jsFiddle作为参考。
最初用户输入23
,然后用户使用退格按钮删除3
。虽然输入23
事件触发但删除时间事件没有触发。我正在使用device : motorola motog,Android Version:4.4.2
。
我该如何解决这个问题,任何人都可以用示例代码来帮助我。
这是我第一次在mobile Apps
上工作。 keyUp
事件不发射如果我按backspace
按钮。backSpace在Android手机中没有触发按键事件
我作了jsFiddle作为参考。
最初用户输入23
,然后用户使用退格按钮删除3
。虽然输入23
事件触发但删除时间事件没有触发。我正在使用device : motorola motog,Android Version:4.4.2
。
我该如何解决这个问题,任何人都可以用示例代码来帮助我。
问题是Chrome自从Android 4.4以来停止触发“退格键”的按键事件。这在许多基于webview的应用程序中遇到问题以捕捉所需的事件。通过使用input
事件可以解决这个问题,只要用户键入内容,粘贴某些内容或点击键盘上的“.com”按钮,就会触发此事件。
最好是依靠input
事件,如果您只是为了捕捉对输入的更改。如果您想要防止默认操作,那么这并不有用。
对于你的情况,我认为它应该适合。但要小心,早于Android 4版本对此事件的支持。
至于解决方案,你可以尽量避免使用 '输入' 事件,如提及@aravind。 问题是“输入”事件不适用于< = ie9和一些移动操作设备。当然,您可以使用浏览器支持检测,例如modernizr或简单snippet,并使用支持keyUp/input事件。
另一方面,您可以一起使用所有事件,浏览器将自行决定使用哪一个事件。问题是 - 在这种情况下,回调函数将在支持这两个事件的现代浏览器中调用两次。
解决方法是使用去抖功能来防止双重调用。
$('.parent').on('change keydown input', _.debounce(function() {
// whatever
}, 0));
请注意,我使用keydown事件,而不是KEYUP因为我设置延时只有0毫秒,因此KEYUP将在更晚打电话_.debounce并不能帮上忙。
这有助于解决您的问题吗? – aravind
对不起,我没有看到你的消息,当我发布一个问题时,我发现了解决方案的一天。我忘了发布答案。无论如何,你说的是对的。我也在使用'输入'事件。这是工作的魅力。 – user3279058
请记住,空输入将导致输入事件不能触发! http://stackoverflow.com/questions/10004581/jquery-input-event-does-not-fire-if-input-is-empty –