私はオンラインストアのために構築しているjQuery/JSONベースのライブ検索で数日間この問題を抱えてきました。オープンソースのTipue Dropを使用してテストJSONを使用しているときに結果を得ることはできますが、それを読み込むことはできません。私はJSONファイルhereを持っていて、以下のjavascriptを使って、Tipue Dropを使って名前と説明フィールドを読み込みました。どのように私はこれを解決することができますどのようなアドバイスに感謝!JSONとjQueryライブ検索
/*
Tipue drop 5.0.2
Copyright (c) 2015 Tipue
Tipue drop is released under the MIT License
http://www.tipue.com/drop
*/
(function($) {
$.fn.tipuedrop = function(options) {
var set = $.extend({
'show' : 3,
'speed' : 300,
'newWindow' : false,
'mode' : 'static',
'contentLocation' : 'tipuedrop/tipuedrop_content.json'
}, options);
return this.each(function() {
var tipuedrop_in = {
pages: []
};
$.ajaxSetup({
async: false
});
if (set.mode == 'json')
{
$.getJSON(set.contentLocation)
.done(function(json)
{
tipuedrop_in = $.extend({}, json);
});
}
if (set.mode == 'static')
{
tipuedrop_in = $.extend({}, tipuedrop);
}
$(this).keyup(function(event)
{
getTipuedrop($(this));
});
function getTipuedrop($obj)
{
if ($obj.val())
{
var c = 0;
for (var i = 0; i < tipuedrop_in.pages.length; i++)
{
var pat = new RegExp($obj.val(), 'i');
if ((tipuedrop_in.pages[i].name.search(pat) != -1 || tipuedrop_in.pages[i].description.search(pat) != -1) && c < set.show)
{
if (c == 0)
{
var out = '<div class="tipue_drop_box"><div id="tipue_drop_wrapper">';
}
out += '<a href="' + tipuedrop_in.pages[i].id + '"';
if (set.newWindow)
{
out += ' target="_blank"';
}
out += '><div class="tipue_drop_item"><div class="tipue_drop_left"><img src="' + tipuedrop_in.pages[i].id + '" class="tipue_drop_image"></div><div class="tipue_drop_right">' + tipuedrop_in.pages[i].name + '</div></div></a>';
c++;
}
}
if (c != 0)
{
out += '</div></div>';
$('#tipue_drop_content').html(out);
$('#tipue_drop_content').fadeIn(set.speed);
}
}
else
{
$('#tipue_drop_content').fadeOut(set.speed);
}
}
$('html').click(function()
{
$('#tipue_drop_content').fadeOut(set.speed);
});
});
};
})(jQuery);
<script>
$(document).ready(function() {
$('#tipue_drop_input').tipuedrop({
'mode': 'json',
'contentLocation': 'http://barbarostudios.com/clientpreviews/lungavita2/api/search.php'
});
});
</script>
コンソール(F12)にエラーがありますか? –
はい:3tipuedrop.js:60 Uncaught TypeError:未定義の属性 'search'を読み取ることができません –
'tipedrop_in.pages [i] .name.search(pat)'を 'tipuedrop_in.pages [i] .titleに変更したようです.search(pat) '60行目... JSONファイルのどこにでも' title 'は表示されませんが、 'name'が表示されます。変更の具体的な理由は何ですか? –