我正在玩Typeahead,我試圖找出是否有方法在搜索查詢中顯示圖片和標籤?就像我們試圖在推文上提及用戶時Twitter所做的一樣。在Bootstrap的Typeahead中添加標籤,值和圖片
回答
做一些研究和拉動幾乎所有我的頭髮後,我終於想通了如何將全名,圖片和用戶名添加到類似twitter的類型。
比方說,這是每一個對象爲源的結構如下,
{{ friend.id }}#{{ friend.username }}#{{ friend.imgurl }}#{{ friend.fullname }}
然後,所有你需要做的就是寫一個很好的熒光筆,像這樣
highlighter: function(item) {
var parts = item.split('#'),
html = '<div class="typeahead">';
html += '<div class="media"><a class="pull-left" href="#"><img src='+parts[2]+' /></a>'
html += '<div class="media-body">';
html += '<p class="media-heading">'+parts[3]+' (@'+parts[1]+')'+'</p>';
html += '</div>';
html += '</div>';
return html;
},
某事,這將很容易在Typeahead中添加圖片,全名和用戶名。
您可能會發現使用http://ivaynberg.github.com/select2/更容易/更好,而不是嘗試自定義默認垃圾Bootstrap!
如果搜索模板該網頁上,你會發現它 - 它看起來像這樣:
您可以嘗試使用以下自定義代碼來渲染包含JSON模式的圖像。
請按照fiddle link here進行實施和測試。
的預輸入的樣子:
$(".typeahead").typeahead({
source: function (query, process) {
//here we pass the query (search) and process callback arguments to the throttled function
throttledRequest(query, process);
},
highlighter: function (item) {
var test = testObjs[item];
return '<div class="test">' + '<img src="' + test.photo + '" />' + '<br/><strong>' + test.name + '</strong>' + '</div>';
},
updater: function (selectedName) {
//note that the "selectedName" has nothing to do with the markup provided
//by the highlighter function. It corresponds to the array of names
//that we sent from the source function.
//save the id value into the hidden field
$("#testId").val(testObjs[selectedName].id);
//return the string you want to go into the textbox (the name)
return selectedName;
}
});
+1感謝您的回答。它真的救了我的一天:) –
熒光筆不再工作。
使用模板,例如:
var my_friends = [
{name: "John", picture: "http://..."}
,{name: "Mel", picture: "http://..."}
];
var friends = new Bloodhound({
datumTokenizer: Bloodhound.tokenizers.obj.whitespace('name'),
queryTokenizer: Bloodhound.tokenizers.whitespace,
local: my_friends
});
friends.initialize();
$('#friend_name').typeahead(
{
hint: true,
highlight: true,
minLength: 1,
},
{
name: 'friends',
displayKey: 'name',
source: friends.ttAdapter(),
templates: {
empty: 'not found', //optional
suggestion: function(el){return '<img src="'+el.picture+'" />'+el.name}
}
}
);
來源:https://gist.github.com/jharding/9458780#file-custom-templates-js
非常感謝你!!!!!!它像一個魅力! – 118218
typeahead.initialize();
var typeahead = {
typeaheadInit: function() {
var jsonData = [{
'id': 1,
'name': 'Parajanov Museum',
'image': 'img/1.png'
}, {
'id': 2,
'name': 'Parajanov’s Movie',
'image': 'img/2.png'
}, {
'id': 3,
'name': 'S Parajanov’s about his series of Giocondas',
'image': 'img/3.png'
}, {
'id': 4,
'name': 'S Parajanov’s about the colore of pomegranate',
'image': 'img/4.png'
}, {
'id': 5,
'name': 'George Michael',
'image': 'img/5.png'
}];
var productNames = [];
$.each(jsonData, function(index, product) {
productNames.push(product.name + "#" + product.image + "#" + product.id);
});
$('#typeahead').typeahead({
source: productNames,
highlighter: function(item) {
var parts = item.split('#'),
html = '<div><div class="typeahead-inner" id="' + parts[2] + '">';
html += '<div class="item-img" style="background-image: url(' + parts[1] + ')"></div>';
html += '<div class="item-body">';
html += '<p class="item-heading">' + parts[0] + '</p>';
html += '</div>';
html += '</div></div>';
var query = this.query;
var reEscQuery = query.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&");
var reQuery = new RegExp('(' + reEscQuery + ')', "gi");
var jElem = $(html);
var textNodes = $(jElem.find('*')).add(jElem).contents().filter(function() {
return this.nodeType === 3;
});
textNodes.replaceWith(function() {
return $(this).text().replace(reQuery, '<strong>$1</strong>');
});
return jElem.html();
},
updater: function(selectedName) {
var name = selectedName.split('#')[0];
return name;
}
});
},
initialize: function() {
var _this = this;
_this.typeaheadInit();
}
};
這是簡單而偉大的答案,typeahead和jquery只:) –
- 1. Twitter Bootstrap Typeahead - 標識和標籤
- 2. 在highcharts標籤中添加圖片
- 3. 在選項標籤中添加圖片
- 4. 如何在圖片上添加標籤?
- 5. Bootstrap typeahead和codeigniter
- 6. 添加圖片的選項卡標籤
- 7. 在D3和絃圖中添加標籤
- 8. 在wordpress中爲圖片標題標籤添加標題
- 9. Bootstrap typeahead顯示值
- 10. 添加圖片和標題
- 11. 如何在錨標籤的標題屬性中添加圖片標籤?
- 12. Twitter Bootstrap,Typeahead,圖像
- 13. Bootstrap - 在Bootstrap中對齊標籤和H2
- 14. 如何在TVML的img標籤中添加佔位符圖片?
- 15. 在標籤中的woocommerce產品說明旁邊添加圖片
- 16. Bootstrap標籤輸入 - 在標籤之間添加
- 17. 一起使用Bootstrap Typeahead和Twitter Typeahead
- 18. link_to圖片標籤。如何添加類標籤
- 19. 如何在Mapview中使用圖片和標籤在iPhone中添加註釋?
- 20. 在jQuery和Bootstrap中使用TypeAhead 2.1
- 21. Bootstrap Typeahead異步 - 多個值
- 22. Bootstrap typeahead避免其他值
- 23. 如何在div中添加滾動圖片標籤
- 24. 如何在Reddit共享中添加圖片標籤?
- 25. 如何將twitter-bootstrap圖標添加爲CSS背景圖片?
- 26. 如何在LWUIT-1.5的標籤中添加圖片和字符串?
- 27. 在Google地圖標記上添加標籤和圖標
- 28. Sencha觸摸圖 - 如何在折線圖中添加標籤/值
- 29. Sencha觸摸圖 - 如何在柱形圖中添加標籤/值
- 30. Android在加載後添加片段和標籤?
我想你錯過了這裏的一個關閉div。但除此之外,效果很好。 –