Event selector: Prevent race conditions

This commit is contained in:
Raphael Michel
2019-09-17 10:08:58 +02:00
parent cf14dcf889
commit e2e64ac01d

View File

@@ -11,6 +11,7 @@ $(function () {
var $container = $(this);
var $query = $(this).find('[data-typeahead-query]').length ? $(this).find('[data-typeahead-query]') : $($(this).attr("data-typeahead-field"));
$container.find("li:not(.query-holder)").remove();
var lastQuery = "";
$query.on("change", function () {
if ($container.attr("data-typeahead-field") && $query.val() === "") {
@@ -18,9 +19,15 @@ $(function () {
$container.find("li:not(.query-holder)").remove();
return;
}
lastQuery = $query.val();
var thisQuery = $query.val();
$.getJSON(
$container.attr("data-source") + "?query=" + encodeURIComponent($query.val()) + (typeof $container.attr("data-organizer") !== "undefined" ? "&organizer=" + $container.attr("data-organizer") : ""),
function (data) {
if (thisQuery !== lastQuery) {
// Lost race condition
return;
}
$container.find("li:not(.query-holder)").remove();
$.each(data.results, function (i, res) {
if (res.type === "organizer") {