私はjQueryとajaxの初心者です。私はクリックされたナビゲーションオプションに応じて、同じjsonファイルから異なるコンテンツが読み込まれるアプリケーションを作成しています。2回目のクリックでajax経由でjson lotをロード
これは私のコードです:
$(document).ready(function(){
var $wrapper = $(".wrapper");
$(document).on("click", ".navLink", loadRecipes);
function loadRecipes(){
var type = $(this).attr("href");
$.ajax({
type: "GET",
url: "recipes.json",
cache: false,
success: function(data){
for(var i = 0; i < data.recipes.length; i++){
var recipe = data.recipes[i];
if(type == recipe.type){
var name = "<h3 class='recipeTitle'>" + recipe.name + "</h3>";
$wrapper.append(name);
}
}
});
return false;
}
})
とJSONのようなものになります。
{
"recipes":[
{"name": "A", "type":"type1"},
{"name": "B", "type":"type2"},
{"name": "C", "type":"type2"},
{"name": "C", "type":"type1"}
]
}
をhref属性は、JSONファイルでtype属性と一致します。 特定のリンクをクリックすると、jsonの特定の要素が読み込まれます。 最初にリンクの1つをクリックすると、適切なコンテンツが読み込まれます。 しかし、別のリンクをクリックしようとすると、clickイベントが発生しますが、jsonコンテンツはロードされません。 clickイベントにイベントデリゲートを導入しましたが、それは役に立ちませんでした。 私はそれがキャッシュに問題があるかもしれないと思ったので、私はcache:falseパラメータを追加しましたが、助けにもなりませんでした。 誰かが私に何か不足しているかもしれないかの手がかりを与えることができれば、私はそれを感謝するでしょう。
'.wrapper'要素は常に存在しますか?私はあなたがナビゲーションを言ったことを意味しています..その要素が存在するかどうかは不明です。また、 'success'の中に' debugger'を置いて、2回目のクリックが期待どおりのところに来るかどうかを調べることができます。 –