我正在尝试使用UnderscoreJS和它的_.debounce()方法来停止一个回调函数,以便在keyup事件上重复触发.我这样做是因为每次你开始输入时,都会激活一个
AJAX调用,因此对你键入的每个字符进行调用会非常昂贵(:
这是我使用该方法的方式:
onTypeEvents : function(selector,callback) { return $(selector).on('keyup',function(event){ var that = $(this).val().trim(); switch(event.keyCode) { case 8: if(that !== '') { if(that.length >= 2) { return _.debounce(function() { callback.apply(that,[ that ]) },150); } else { return _.debounce(function() { callback.apply(null,[ null ]) },150); }; }; break; case 9: break; case 13: break; case 27: break; case 37: break; case 38: break; case 39: break; case 40: break; default: if(that !== '') { if(that.length >= 2) { return _.debounce(function() { callback.apply(that,150); }; }; break; }; event.preventDefault(); event.stopPropagation(); }); },
但显然它不起作用,因为没有任何事情再次激发,但如果我删除方法我的代码工作得很好(那么那里可能会出现什么问题?我做错了还是我错过了什么?
解决方法
原文地址:https://www.jb51.cc/js/155472.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。