不确定为什么这不是通过IE中的AJAX加载内容?

时间:2011-04-03 06:43:07

标签: javascript jquery ajax internet-explorer wordpress

创建这个简单的基于AJAX的WordPress主题,我为它创建了一个自定义灯箱。一切进展顺利,但可怕的IE现在已经发挥作用。

由于某种原因,内容未在IE中加载(仅测试IE8)。

首先,这里是到目前为止主题的链接:http://themes.thefinishedbox.com/portfolio/记住它还处于早期阶段,所以在IE中看起来会更糟。

单击图像悬停上的右下角图标。

班级.postExpand包含帖子的永久链接,而ID #postEntry是我通过AJAX加载的。

以下是jQuery,如果你想要更好看一下,你可以在这里看到原始文件:http://themes.thefinishedbox.com/portfolio/wp-content/themes/portfolio/js/custom.js

$(function() {
    $('.postExpand').click(function(e) {

        e.preventDefault();

        $.ajaxSetup ({  
            cache: false  
        });

        var href = $(this).attr('href');

        var loader = "<div id='loader'></div>"; 
        var loadurl = href + ' #postEntry';

        $('body').prepend('<div id="overlay" />');
        $('#overlay').animate({opacity: 0.8}, 400);

        $('body').prepend('<div id="lightBox" />');

        $('#lightBox').html(loader).load(loadurl, function() {
            $('#postContent').jScrollPane();
            $(this).css({backgroundColor: '#fff'});
        });

        $('#closeBox > div').live('click', function() {
            $('body #lightBox').remove();
            $('body #overlay').animate({opacity: 0}, 400, function() {
                $(this).remove();
            });
        });

        $('body #overlay').mouseup(function() {
            $('body #lightBox').remove();
            $(this).animate({opacity: 0}, 400, function() {
                $(this).remove();
            });
        });

    });
});

我认为问题在于loadurl因为我可以将其更改为'http://themes.thefinishedbox.com/portfolio/'并且会加载。

任何人都有任何想法可能是什么问题?

修改

这也不起作用:

var href = $(this).attr('href');
var loadurl = href;

2 个答案:

答案 0 :(得分:0)

你的loadurl语句空间太多了:

var loadurl = href + ' #postEntry';

var loadurl = href + '#postEntry';

答案 1 :(得分:0)

问题是固定链接结构,可能是IE中WordPress 3.1的错误。

不应该在IE中显示/类别/。由于主题不需要类别,我将永久链接结构剥离为/%POSTNAME%/并解决了问题。