我正在关注this页面来制作 ajax 站点。这相当简单,但我遇到的问题是链接,它们只是
<a href="link.html">Link</a>
倾向于忽略主题标签更改并直接进入 link.html 页面,导致重新加载,而不是使用 ajax 来更新内容。
当我点击后退按钮时,ajax 部分起作用,然后当我单击那里的链接时,它起作用 - 知道页面第一次登陆时是什么导致了这种行为吗?
我正在使用 jQuery UI 中的导航器菜单,如果您需要更多信息,请告诉我,我会尽快发布。
感谢您的帮助!
这是控制ajax行为的dynamic.js文件:
$(function() {
var newHash = "",
$mainContent = $("#main-content"),
$pageWrap = $("#page-wrap"),
baseHeight = 0,
$el;
$pageWrap.height($pageWrap.height());
baseHeight = $pageWrap.height() - $mainContent.height();
$("nav").delegate("a", "click", function() {
window.location.hash = $(this).attr("href");
return false;
});
$(window).bind('hashchange', function(){
newHash = window.location.hash.substring(1);
if (newHash) {
$mainContent
.find("#guts")
.fadeOut(200, function() {
$mainContent.hide().load(newHash + " #guts", function() {
$mainContent.fadeIn(200, function() {
$pageWrap.animate({
height: baseHeight + $mainContent.height() + "px"
});
});
$("nav a").removeClass("current");
$("nav a[href='"+newHash+"']").addClass("current");
});
});
};
});
$(window).trigger('hashchange');
});
最佳答案
当我查看页面的源代码时,您拥有执行此操作的代码:
$( "#menu" ).menu({
});
在里面,你有:
location.href = link.attr( "href" );
我有一种感觉,因为除了 hashchange
处理之外,它还执行它,所以它被调用并覆盖(以任何方式)AJAX 加载内容。如果您删除/注释该行,它可能会起作用,但请确保您的网站在进行此更改后仍能按您想要的方式运行。
关于javascript - 标签 ajax 无法持续工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13166898/