我是jQuery和ajax的新手。我正在創建一個應用程序,根據點擊的導航選項從同一個json文件加載不同的內容。json很多通過ajax加載第二次點擊
這是我的代碼:
$(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文件類型屬性相匹配。 因此,點擊特定鏈接時,會加載json的特定元素。 當我第一次點擊其中一個鏈接時,會加載相應的內容。 但是,當我嘗試點擊另一個鏈接,點擊事件觸發,但JSON內容不加載。 我已經在click事件上引入了事件委託,但它沒有幫助。 我認爲這可能是一個緩存問題,所以我添加了緩存:false參數,但它也沒有幫助。 如果任何人都可以給我一個線索,我可能會錯過什麼,我將不勝感激。
你確定'.wrapper'元素一直存在嗎?我的意思是你說導航..所以它不確定這個元素是否存在..除此之外,你可以嘗試在'success'中放置'debugger'來查看第二次點擊是否到達預期的位置。 –