【发布时间】:2015-01-31 07:40:51
【问题描述】:
在我的应用程序中,我想根据地址更新谷歌地图并放置用户类型。 因为我不希望应用程序每次用户输入 1 个字母时都更改地图,所以我搜索了一些东西来降低函数调用的数量。因为超时只会延迟对函数的调用(该函数将被调用,就好像它没有延迟一样),我搜索了替代方案并找到了jQUery debounce,我尝试像这样实现它:
$('input.locatie-input').on('input', $.debounce(function () {
console.log('changed');
initializeMap();
}, 500));
但我不断收到以下错误:
Uncaught TypeError: undefined is not a function
参考以下行:
$('input.locatie-input').on('input', $.debounce(function () {
我做错了什么,在这种情况下要反跳吗?
更新:
Roko C. Buljan 的回答是有效的,去抖插件也是如此
去抖插件代码:
_.debounce = function(func, wait, immediate) {
var timeout;
return function() {
var context = this, args = arguments;
var later = function() {
timeout = null;
if (!immediate) func.apply(context, args);
};
var callNow = immediate && !timeout;
clearTimeout(timeout);
timeout = setTimeout(later, wait);
if (callNow) func.apply(context, args);
};
};
【问题讨论】:
-
您是否在您的页面中加入了反跳javascript?
-
该任务不需要任何 debounce 插件。
-
@RokoC.Buljan 但 OP 的代码不起作用的原因是因为他缺少插件代码对吗?
-
你是对的@NathanKoop
标签: jquery debouncing