Javascript Ajax调用加载当前内容

Javascript Ajax调用加载当前内容,javascript,jquery,html,ajax,Javascript,Jquery,Html,Ajax,我浏览了很多论坛,绞尽脑汁试图让这个超级简单的加载函数工作。我已经把它缩小到我认为是loadContent函数的.fadeIn()部分的选择器问题 我可以理解为什么它总是加载相同的内容,因为它使用相同的选择器,但是基于我一直尝试使用的教程()以及我使用的另一个(甚至更坏的)方法(基于此:),它似乎应该可以工作 我尝试使用$(href)作为选择器,但它只是淡出旧内容,不加载任何内容。我还尝试添加一个警报来查看href是什么,它返回了正确的html页面,后跟正确的元素id(Articles/Cats

我浏览了很多论坛,绞尽脑汁试图让这个超级简单的加载函数工作。我已经把它缩小到我认为是
loadContent
函数的
.fadeIn()
部分的选择器问题

我可以理解为什么它总是加载相同的内容,因为它使用相同的选择器,但是基于我一直尝试使用的教程()以及我使用的另一个(甚至更坏的)方法(基于此:),它似乎应该可以工作

我尝试使用
$(href)
作为选择器,但它只是淡出旧内容,不加载任何内容。我还尝试添加一个警报来查看href是什么,它返回了正确的html页面,后跟正确的元素id(Articles/Cats.html#content)

这是函数本身,如果您需要更多信息,我很乐意提供!任何帮助都将是难以置信的,好的,有帮助的

function articleClickLoad () {
    if (Modernizr.history) {

        var newHash      = "",
            $Content     = $("#content"),
            $el;

        $("#content").on("click", "a", function() {

            var _link = $(this).attr("href");
            var toLoad = $(this).attr('href')+' #content';

            history.pushState(null, null, _link);
            loadContent(toLoad);
            return false;
        });

        function loadContent(href){

            $Content.find("#content");
            $Content.fadeOut(1000, function() {
                $("main").load(href,'', function() {
                    $Content.fadeIn(1000);
                });
            });
        }

        $(window).bind('popstate', function(){
           _link = location.pathname.replace(/^.*[\\\/]/, ''); //get filename only
           loadContent(toLoad);
        });
    }
}
articleClickLoad();

谢谢

我看到两个潜在问题。获取URL,但由于某种原因,您正在单击处理程序中添加
“#内容”
;更新时应该删除它:我忽略了传递一个页面片段是完全有效的,忘了它吧

loadContent
方法中,在选择器
$(“main”)
上调用
load
。从您的源代码中不清楚什么是
main
,但我认为应该是
#content


还要注意,您可以从
.load
调用中删除第二个参数
'
。请参阅。

您没有从任何地方加载任何新数据,那么您希望新数据从何而来?@Izzey
$(“main”)。load(…)
没有加载数据?嗯。load正在调用href,这是新页面内容,但我不确定如何使该内容变为fadeInI抱歉,我错过了加载部分。
$(“main”)
是index.html中
#content
的父级,因此我不希望加载的
#content
作为子级添加到现有的
#content
。我遵循的教程(非常有效!)基本上称为
.load
\u link+“#content”
,所以我想我可以把它放在一个变量中,
toLoad
。注意,当
$(“main”)
最初是
$content
,我仍然有这个问题。好吧。我刚刚认识到。load('url#id')也是完全有效的。抱歉,这没有任何帮助。再随机拍摄一次:尝试
$('main#content')。fadeIn(1000)而不是
$Content.fadeIn(1000)。遗憾的是,它不起作用,但我很感谢你的建议!