在我的應用程序中,我想根據地址更新谷歌地圖地圖並放置用戶類型。 因爲我不想讓應用程序每次更改地圖時輸入1個字母,我搜索了一些東西以降低關閉的函數調用。由於超時只會拖延調用的函數(該函數將被調用相同的時間,如果它沒有延遲),我尋找替代品和發現jQUery debounce,我tryed實現它想:用戶停止打字後運行功能
$('input.locatie-input').on('input', $.debounce(function() {
console.log('changed');
initializeMap();
}, 500));
但我不斷收到以下錯誤:
Uncaught TypeError: undefined is not a function
reffering以下行:
$('input.locatie-input').on('input', $.debounce(function() {
難道我做錯了什麼,而且是反跳的方式在這種情況下?
UPDATE:
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);
};
};
您是否在您的頁面上加入了debounce javascript? – 2014-12-02 22:11:36
您不需要任何* debounce *插件來完成該任務。 – 2014-12-02 22:20:03
@RokoC.Buljan,但OP的代碼不工作的原因是因爲他錯過了插件代碼? – 2014-12-02 22:22:51