我正在使用Twitter的预先设置的非常基本的设置。我有两个不同的搜索字段,因此有两个类型的初始化。
使用Javascript:
$(document).ready(function() {
$('input.search-event').typeahead({
name: 'Events',
prefetch: '/media/json/events.json',
ttl: 0,
limit: 10
});
$('input.search-artist').typeahead({
name: 'Artists',
prefetch: '/media/json/artists.json',
ttl: 0,
limit: 10
});
});
events.json和artists.json都格式化为["entry1", "entry2", "entry3", "..."]
。
我在Chrome中以正常模式和隐身模式获得了不同的结果。在正常模式下,它似乎使用了一个不再存在的旧json文件(我删除了它)。在隐身模式下,它使用正确的json文件,但它不会自动提供添加到json文件的最后一项。我希望ttl
设置为0可以解决这个问题,但事实并非如此。我已经清除了浏览器缓存,但这并没有解决问题。我在其他帖子中读到我应该清除浏览器的localStorage,但我真的不知道如何。控制台日志中没有错误。
我刚刚发现,在FF和Safari中,typeahead根本没有显示任何内容: - )
修改
结果似乎也取决于name:
值。这应该发生吗?例如:如果我将name:
值更改为'test'
,则typeahead根本不起作用。
答案 0 :(得分:2)
Typeahead 在FF和Safari中工作。事实上没有name
它对你不起作用的事实(对我来说)你的json文件中的某些内容是错误的,并且它不是那种情况,并且你的浏览器正在使用缓存版本。
由于name
是缓存的关键,这可能会解释您所看到的一切:
要进行调试,请先查看网络标签下的Chrome浏览器工具(F12),然后查看/media/json/artists.json
的请求和响应,并确保它们正常。然后确保内容确实是有效的JSON。