我想在一个行的表格上弹出一个导致AJAX调用的keyup事件。我使用了所有的debouncing插件,包括Ben Alman的jQuery插件、Underscore.js的插件、jQuery的插件。delayed()
插件,以及Filatov Dmitry的一个扩展jQuery的插件(像Ben Alman的)。
我的代码是这样的。
function onKeyUp(evt) {
doSomethingWith(evt, true);
}
$('#mytable').on('keyup', $.debounce(500, onKeyUp));
问题是,虽然它在Firefox和IE9上工作得很好,但在IE8上却不能工作。具体来说,当我在调用 evt.preventDefault()
的jQuery 1.11.1代码,并在4967行中断。e.returnValue = false;
(因为 preventDefault()
显然在IE8中不存在)。) 用IE开发工具调试器检查事件变量,似乎该变量包含了所有的事件成员方法和属性,但大部分都被标记为 "未找到成员"。https:/stackoverflow.coma3533725134120。 但是没有用.上网搜索 "找不到IE成员",返回的结果很多,但解决的办法不多。
那么,有什么想法吗?
我需要先阻止默认处理程序(即不滚动),然后debounce我的事件处理程序。
然后使用这个。
var onKeyUp = $.debounce(500, doSomethingWith);
$('#mytable').on('keyup', function(evt) {
evt.preventDefault(); // do always
onKeyUp(evt, true); // possibly bounced call to doSomethingWith
});