下面是我执行typeahead的js代码:
jQuery.noConflict();
jQuery(document).ready(function(){
jQuery('.search-field.input').typeahead({
name: 'group-static',
prefetch: 'http://ws.luyencong.net/data/search/query.php?do=advanced',
header: '<span class="group-title">General Content</span>',
template: [
'<img class="icon" src="{{icon}}" style="width: 38px; height: 38px" />',
'<div class="icon-desc"><span xmlns="http://www.w3.org/1999/xhtml" class="title">{{name}}</span>',
'<span xmlns="http://www.w3.org/1999/xhtml" class="desc">{{description}}</span></div>',
'<span class="clear"></span>'
].join(''),
engine: Hogan
});
});
Typeahead被执行(因为我可以看到tt提示输入,以及建议div的包装器)但是有一个问题,当我键入一个字符时,建议没有显示出来。
我的JSON位于:http://ws.luyencong.net/data/search/query.php?do=advanced
请帮我一些忙。谢谢
这并不是一个真正的typeahead.js问题。问题是您正在进行从luyencong.net
到ws.luyencong.net
的跨域请求。如果可以的话,在luyencong.net
上托管预取JSON文件——这可能是最简单的解决方案。
jQuery('.search-field.input').typeahead({
// ...
prefetch: 'http://luyencong.net/data/search/query.php?do=advanced'
// ...
});
如果你不能做到这一点,还有其他一些选择:
- CORS
- JSONP