我是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'来查看第二次点击是否到达预期的位置。 –