事实用以下检测代码来检测时,是支持Keyup的
function detectEventSupport(eventName) {
var tempElement = document.createElement('p'),
isSupported;
eventName = 'on' + eventName;
isSupported = (eventName in tempElement); // 使用第一种方式
// 如果第一种方式行不通,那就来看看它是不是已知事件类型
if (!isSupported) {
tempElement.setAttribute(eventName, 'xxx');
isSupported = typeof tempElement[eventName] === 'function';
if(typeof tempElement[eventName] != 'undefined'){
tempElement.removeAttribute(eventName);
}
}
// 清除掉动态创建的元素,以便内存回收
tempElement = null;
// 返回检测结果
return isSupported;
}
但实际上使用时并不会触发。
因此想模拟keyup事件
var mock = null;
addEvent(document, 'keydown', function(e) {
keydownHandler(e);
if (mock) clearTimeout(mock);
mock = setTimeout(function() {
keyupHandler(e);
}, 200);
});
但是这种方法的效果不是很好,请问还有没有更好的方法