Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript js替换了错误的内容_Javascript_Jquery_Ajax_Browser History_History.js - Fatal编程技术网

Javascript js替换了错误的内容

Javascript js替换了错误的内容,javascript,jquery,ajax,browser-history,history.js,Javascript,Jquery,Ajax,Browser History,History.js,我的JavaScript中有以下初始化:;顺便说一下,我总是使用github中显示的代码。完整的代码可以是 问题在于: contentSelector = '.tab-content,.page-content,article:first,.article:first,.post:first', 以及: $menu = $('#menu,#nav-sub,.nav,.nav-sub:first').filter(':first'), 当在.nav中单击菜单时,必须更改.page内容 在.na

我的JavaScript中有以下初始化:;顺便说一下,我总是使用github中显示的代码。完整的代码可以是

问题在于:

contentSelector = '.tab-content,.page-content,article:first,.article:first,.post:first',
以及:

$menu = $('#menu,#nav-sub,.nav,.nav-sub:first').filter(':first'),
当在
.nav
中单击菜单时,必须更改
.page内容

.nav sub
中单击菜单时,必须在
选项卡内容中替换内容

问题是,这两个菜单都改变了
。页面内容
,而不仅仅是选项卡内容或页面内容


你知道如何改变这一点吗?

修复你的内容选择

contentSelector = '.tab-content,.page-content,article:first,.article:first,.post:first'


History.js没有替换错误的内容;ajaxify-html5.js(您正在使用的脚本)完全按照设计进行:

  • 如果用户单击一个内部链接(而该链接没有
    no ajaxy
    类),那么脚本将拦截该单击,停止浏览器加载页面,并启动该页面的Ajax请求

    请注意,这包括页面上的所有内部链接,而不仅仅是菜单中的链接

  • Ajax请求完成后,脚本将当前页面上的内容替换为响应中的内容(并执行一些其他聪明的操作,如在右侧菜单项上设置
    activeClass
    ,更新页面标题并从响应中运行脚本)

    脚本使用
    contentSelector
    中找到的第一个元素作为“content”节点。这并不取决于用户单击的链接


如果只想“ajaxify”菜单链接,可以更改(第95行):

改为在菜单元素上调用
.ajaxify()

如果要使用新内容更新其他元素,可以更改(第145行):


改为更新另一个元素。

请不要使用$作为变量,这只是一种不好的做法,尤其是如果您也使用jQuery。检查github链接,我使用了那里的代码。但是我们会在以后考虑。@VahurRoosimaa对于人们来说,用
$
前缀指向
jQuery
对象的变量是很常见的。这是你个人的偏好,与手头的问题无关。@VahurRoosimaa看一看。变量名中的任何位置都允许使用美元符号($)。
contentSelector = '.tab-content,.page-content,article:first,.article:first,.post:first'
contentSelector = '.tab-content, .page-content, .article:first, .post:first'
$body.ajaxify();
$content.html(contentHtml).ajaxify().css('opacity',100).show(); /* you could fade in here if you'd like */