gpt4 book ai didi

loading - twitter typeahead + bloodhound 再利用 : how do I show a loading gif for the ajax request?

转载 作者:行者123 更新时间:2023-12-01 12:41:36 27 4
gpt4 key购买 nike

我的 bloodhound 对象被两个 typeaheads 重用,每个 typeahead 旁边都有一个隐藏的图像,就是这两个图像:#loading-1#loading-2,

    galleriesBloodhound = new Bloodhound({
datumTokenizer: function (gallery) { return gallery.name; },
queryTokenizer: Bloodhound.tokenizers.whitespace,
remote: {
url: '/GalleriesAjax/List?nameQuery=%QUERY',
beforeSend: function (xhr) {

},
filter: function (response) {
return response.pageOfGalleries;
}
}
});

提前输入 #1:

    $("#gallery-name").typeahead({
highlight: false,
hint: true,
},
{
name: 'galleries',
displayKey: function (gallery) { return gallery.displayName; },
source: galleriesBloodhound.ttAdapter()
}).on(..).on(..)...

Typeahead #2(相同的代码)

    $("#gallery2-name").typeahead({
highlight: false,
hint: true,
},
{
name: 'galleries',
displayKey: function (gallery) { return gallery.displayName; },
source: galleriesBloodhound.ttAdapter()
}).on(..).on(..)...

如何在 ajax 请求尚未返回时显示正确的 #loading-1#loading-2

在 typeahead.js 的网站上,他们建议使用 beforeSendfilter,但是“从那里”我怎么知道调用 bloodhound 的是哪个 typeahead?

    beforeSend: function (xhr) {
$("#loading-i").show(); // How do I figure "i" ??
},
filter: function (response) {
$("#loading-i").hide(); // How do I figure "i" ??
return response.pageOfGalleries;
}

// i depends on the typeahead that is using "this" bloodhound

最佳答案

好吧,我解决了我们的问题(虽然我对此不是 100% 满意!)基于以下假设:焦点元素应该始终是预先输入的附加文本字段.

这是代码(Bloodhound 对象初始化):

var locsData = new Bloodhound({
datumTokenizer: Bloodhound.tokenizers.obj.whitespace("name"),
queryTokenizer: Bloodhound.tokenizers.whitespace,
remote: {
url: "/locations/search.json?q=%QUERY",
ajax: {
beforeSend: function(xhr, settings) {
// maybe the 'if' is not necessary, but just to be sure...
if ($(document.activeElement).typeahead != null) {
$(document.activeElement).addClass('loading-text');
}
},
complete: function(xhr, status) {
if ($(document.activeElement).typeahead != null) {
$(document.activeElement).removeClass('loading-text');
}
}
}
},
limit: 100
});

在您的情况下,您正在切换某个元素的显示(<span> ?),在我的项目中,我正在向该元素添加/删除一个类(此类在右边缘显示一个 loading.gif文本字段),但想法应该是相同的。

现在我将在我的项目中使用它。我希望这对你也有用。

关于loading - twitter typeahead + bloodhound 再利用 : how do I show a loading gif for the ajax request?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23985898/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com