我正在开发一个wordpress组合,我正在尝试使用ajax / jquery .load()
在滑动抽屉中加载帖子内容。在@techfoobar的帮助下,当我点击页面的选定元素(缩略图)时,我已经能够打开抽屉了。但是现在我最难找到为什么我的ajax内容没有加载到这个div中...
当我点击缩略图时,抽屉打开然后浏览器继续到网址,而不是在抽屉中加载此网址。如果我点击Esc停止浏览器,我可以读取“loading ...”所以jQuery正在工作直到那一点。
有人可以检查这个小提琴 http://jsfiddle.net/RF6df/14/并告诉我是否放错了加载功能,或者是否存在阻止我的内容正确加载的主要语法问题? (我假设负载在jsfiddle上不起作用,但至少可以检查代码)
在此之前,当我第一次尝试ajax时,我用这个加载我的内容并且它工作正常但我的div已经在我的php页面中已经存在(未检测到点击时加载)。噢,请记住,我是jquery的新手,如果你能评论/解释你所看到或做的事情,那将是非常宝贵的!
$(document).ready(function(){
$.ajaxSetup({cache:false});
$(".ProjectWrap,.mosaic-overlay,.mosaic-backdrop").click(function(){
var post_link = $(this).attr("href");
//$('#DrawerContainer').slideToggle(500);
$("#DrawerContainer").html("loading...");
$("#DrawerContainer").load(post_link + " #container > * ");
return false;
});
});
$(document).ajaxSuccess(function() { // refresh heading in ajax called element
Cufon('h1');
});
编辑:
我刚注意到,当我写.load("http://localhost/youpiemonday_New/test4 #container > * ")
时,抽屉会获取test4帖子的内容。我仍然需要点击Esc来停止浏览器,否则它太快了
如果我写.load(post_link + " #container > * ")
,唯一显示的是“loading ...”。
所以我假设负载正在运行,但问题来自post_link
部分。奇怪的是,当我的功能严格局限于负载时,它会起作用。
答案 0 :(得分:1)
我想我看到了你的问题。 .ProjectWrap
是li
是的?如果是这样,你要做的是从LI获取href,它没有href属性。
请改为尝试:
var post_link = $(this)
.parentsUntil(".ProjectWrap")
.parent()
.find(".mosaic-backdrop")
.attr("href");
这是做什么的:为此(.ProjectWrapper)找到<a />
并获得href。