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)代码>。遗憾的是,它不起作用,但我很感谢你的建议!