У меня проблема с синтаксисом с Ben Alman's jQuery Debounce plugin. Он работает так, как ожидалось, в одном формате, но мне он нужен в другом.Как отформатировать jQuery Ben Alman
Как я могу сделать эту работу без ошибки?
coolThing.on({
keydown: function() {
console.log('keydown');
$.debounce(500, function() { // Uncaught TypeError: Cannot read property 'toLowerCase' of undefined :(
debugLog('debounced keydown');
})();
}),
focus: function() {
console.log('focus');
}),
blur: function() {
console.log('blur');
})
});
Спасибо!
__
Здесь другие форматы, которые работают:
coolThing.keydown($.debounce(500, function() {
console.log('debounced keydown');
}));
coolThing.on({
keydown: function() {
console.log('keydown');
}),
focus: function() {
console.log('focus');
}),
blur: function() {
console.log('blur');
})
});
coolThing.on({
keydown: $.debounce(500, function(e) {
// wouldn't it be great to execute other things before $.debounce()?
debugLog('debounced keydown');
}),
focus: function() {
console.log('focus');
}),
blur: function() {
console.log('blur');
})
});
Бонкерс. Лучше использовать метод Underscore, не так ли? http://underscorejs.org/#debounce – technopeasant
@technopeasant: Я уверен, что вы получите те же проблемы с '_.debounce', что и с' $ .debounce'. Оба они работают, возвращая функцию контекста. Если вы воссоздаете эту контекстную функцию каждый раз, когда вызывается обработчик кликов, вы теряете этот контекст. – Matt