使用.load()帮助将href内容加载到阴影框中!

时间:2010-05-09 16:29:23

标签: jquery ajax wordpress

<script type="text/javascript">
    $(function() {
        $('#wp-calendar a').click(function(event) {
            event.preventDefault();

            var url = $(this).attr('href') + ' #content';

            var loaded = Shadowbox.load(url);

            Shadowbox.open({
                content:    loaded,
                player:     "html",
                title:      "<?php the_title(); ?>",
                height:     300,
                width:      470,
            });
        });
    });
</script>

这是我用来尝试在shadowbox中显示内容的代码,我使用默认的wordpress日历和jQuery / AJAX(如果我没有记错的话)将这个click事件添加到日历中的每个链接,所以单击链接时,内容将加载并显示在阴影框中,而不是在新页面上打开。

当我点击其中一个链接时,我进入影子箱的所有内容都是“未定义”。

我相信你可以在我的代码中看到,我对此仍然很陌生,所以任何帮助或指示都会受到赞赏。

提前Thanx!

2 个答案:

答案 0 :(得分:1)

首先,使用alert()函数调试代码 像这样:

<script type="text/javascript">
    $(function() {
        $('#wp-calendar a').click(function(event) {
            event.preventDefault();

            var url = $(this).attr('href') + ' #content';
            alert(url);
        });
    });
</script>

我认为它会生成无效的网址,因为它会在末尾添加一个不必要的空格字符 (... + ' #content'

除非最终网址中的所有文件都以空格结尾,否则这真的搞得一团糟。 删除#之前的空格。

var url = $(this).attr('href') + '#content';

如果之后不起作用,还有其他问题。

答案 1 :(得分:0)

我注意到的第一件事是您的网址不应包含任何空格。这可能就是为什么当Shadowbox进行AJAX调用时无法找到内容。我对Shadowbox并不熟悉,但你可以使用Firebug控制台轻松测试它。尝试输入这样的内容,看看你是否正在加载正确的内容:

$.get(url, function(data) { console.log(data); });