Jquery加载不起作用,我的代码中是否存在语法错误?

时间:2012-10-19 14:09:15

标签: jquery ajax wordpress syntax

我正在开发一个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部分。奇怪的是,当我的功能严格局限于负载时,它会起作用。

1 个答案:

答案 0 :(得分:1)

我想我看到了你的问题。 .ProjectWrapli是的?如果是这样,你要做的是从LI获取href,它没有href属性。

请改为尝试:

var post_link = $(this)
                 .parentsUntil(".ProjectWrap")
                 .parent()
                 .find(".mosaic-backdrop")
                 .attr("href");

这是做什么的:为此(.ProjectWrapper)找到<a />并获得href。