我正在使用引导程序提前输入。
它依赖于这个 jQuery 代码来工作:
el.on('keyup', doSomething() )
在 Windows 上的 Chrome 上,它运行良好。在 Android 上的 Chrome 上则不然。 keyup 事件永远不会被触发。它所绑定的元素肯定具有焦点。
这似乎是最近的进展。
铬28.0.1500.64
安卓 4.1.2 SGP321 内部版本/10.1.1.A.1.307
Thanks
——贾斯汀·威利
我今天早些时候遇到了同样的问题。 android chrome怎么会不支持这些按键事件呢!我假设您现在已经找到了解决方法,但这是我现在想出的解决方案。
function newKeyUpDown(originalFunction, eventType) {
return function() {
if ("ontouchstart" in document.documentElement) { // if it's a touch device, or test here specifically for android chrome
var $element = $(this), $input = null;
if (/input/i.test($element.prop('tagName')))
$input = $element;
else if ($('input', $element).size() > 0)
$input = $($('input', $element).get(0));
if ($input) {
var currentVal = $input.val(), checkInterval = null;
$input.focus(function(e) {
clearInterval(checkInterval);
checkInterval = setInterval(function() {
if ($input.val() != currentVal) {
var event = jQuery.Event(eventType);
currentVal = $input.val();
event.which = event.keyCode = (currentVal && currentVal.length > 0) ? currentVal.charCodeAt(currentVal.length - 1) : '';
$input.trigger(event);
}
}, 30);
});
$input.blur(function() {
clearInterval(checkInterval);
});
}
}
return originalFunction.apply(this, arguments);
}
}
$.fn.keyup = newKeyUpDown($.fn.keyup, 'keyup');
$.fn.keydown = newKeyUpDown($.fn.keydown, 'keydown');
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)