Я пытаюсь установить тайм-аут для моей функции ajaxGet, как показано на рисунке here.Проблема с задержкой ajax в форме поиска
Без кода, который я нашел у меня есть:
$('#search').on('keyup', function() {
var query;
query = $(this).val();
ajaxGet('{% url "distributors:search_dist" %}', {
'query': query
}, function(content) {
$('#distributors').html(content);
// alert(content);
set_favorite();
})
});
И это работает хорошо.
После я реализовал решение для задержки у меня есть:
var delay = (function() {
var timer = 0;
return function(callback, ms) {
clearTimeout(timer);
timer = setTimeout(callback, ms);
};
})();
$('#search').keyup(function() {
delay(function() {
var query;
query = $(this).val();
ajaxGet('{% url "distributors:search_dist" %}', {
'query': query
}, function(content) {
// $('#distributors').html(content);
alert(content);
set_favorite();
})
}, 1000);
});
Но это не работает. Я считаю, что проблема заключается в JS, потому что он даже не запускает ajaxGet() ...
Любые идеи, что я делаю неправильно?
Это просто перемещает setTimeout из функции, но не объясняет, почему текущее решение выходит из строя. –