Javascript 这个脚本我做错了什么?
我仍处于ajax和脚本的学习阶段。我最近偶然发现这个网站,发现使用这个脚本加载菜单和内容非常有趣 我试图在我的测试网站上学习和模仿代码,但我无法让它工作。如果可行,它应该从www.ztest.ca/en/en.html加载左菜单和右主菜单 单击语言链接后,它不会将url更改为www.ztest.ca/en/,因此我猜pushState方法没有执行。Firefox控制台也显示了POST ztest.ca/en/[HTTP/1.1 200 OK 209ms] 以下是当前代码: 语言选择容器:Javascript 这个脚本我做错了什么?,javascript,jquery,html,ajax,gsap,Javascript,Jquery,Html,Ajax,Gsap,我仍处于ajax和脚本的学习阶段。我最近偶然发现这个网站,发现使用这个脚本加载菜单和内容非常有趣 我试图在我的测试网站上学习和模仿代码,但我无法让它工作。如果可行,它应该从www.ztest.ca/en/en.html加载左菜单和右主菜单 单击语言链接后,它不会将url更改为www.ztest.ca/en/,因此我猜pushState方法没有执行。Firefox控制台也显示了POST ztest.ca/en/[HTTP/1.1 200 OK 209ms] 以下是当前代码: 语言选择容器: <
<div id="container"><aside id="leftsidebar" class="is-white is-left"></aside>
<div class="lang" id="lang">
<div class="lang_logo"></div>
<div class="lang_selection" id="lang_selection">
<ul>
<li><a href="/en/">English</a></li>
<li><a href="/fr/">Français</a></li>
</ul>
</div>
</div>
</div>
请帮我找出我在这里犯的错误。谢谢大家! 你给pushState打了两次电话,你的目的是什么:)?这是我不明白的部分,我只是想从www.maisonbertine.com上测试相同的代码,但我就是无法让它在我的代码上工作。我认为问题存在于:$lang=$('lang#u selection')$lang.on('click','a',function(e){…}但我就是找不到导致问题的原因。当你说
history.pushState(stateObj,stateName,url)
,它将更改地址栏中的url
,而不实际触发对该资源的请求。当您在浏览器中单击“后退”时,将触发一个“popstate”事件,其state
属性包含您传递的stateObj
。我建议您阅读以下内容:在开发工具->控制台中是否看到任何错误所有内容都将转到ztest.ca/en
,但您说您的页面位于ztest.ca/en/en.html
,因此我建议您相应地更新锚定标记的href
:-)
<script>window.jQuery || document.write('<script src="/js/libs/jquery-1.11.0.min.js"><\/script>')</script>
<script src="/js/libs/TweenMax.min.js"></script>
<script src="/js/libs/CSSPlugin.min.js"></script>
<script src="/js/script.js"></script>
<script>
$(function () {
if($(document).width()<736){
return false;
}
var tween1 = new TimelineMax();
tween1.add([
TweenMax.to("#lang", 1.3, {delay: 1, z: 0, left: 160, autoAlpha: 1, ease: Expo.easeOut,force3D:true}),
]);
tween1.add([
TweenMax.to("#lang_selection", 0.5, {z: 0, left: 160, ease: Expo.easeOut, force3D:true})
]);
$lang = $('#lang_selection');
$lang.on('click', 'a', function(e){
e.preventDefault();
$a = $(this);
var href= $a.attr('href');
$.ajax({
url:href,
type:'post',
dataType:'json',
success: function(response){
$html = $(response.page.html);
$wrapright = $($html[0]);
var nav = response.mainnav;
$container = $('#container');
$container.prepend($wrapright);
$('#leftsidebar').html(nav);
if(Modernizr.history){
window.history.pushState({href:'/'},'','/');
window.history.pushState({href:href},'',href);
document.title = response.page.seotitel;
}
tween1.add([
TweenMax.to("#lang_selection", 0.8, {z: 0, left: 0, ease: Expo.easeOut,force3D:true})
]);
tween1.add([
TweenMax.to("#lang", 0.8, {z: 0, left: -200, ease: Expo.easeOut,force3D:true})
]);
tween1.add([
TweenMax.to("#leftsidebar", 1.5, {z: 0, left: 0, ease: Expo.easeOut,force3D:true})
]);
tween1.add([
TweenMax.to("#overlay", 0.9, {z: 0, autoAlpha: 1,force3D:true})
]);
tween1.add([
TweenMax.to("#main h1", 2, {z: 0, top: '25%', autoAlpha: 1, ease: Expo.easeOut,force3D:true}),
]);
}
});
});
});
</script>
$lang = $('#lang_selection');
$lang.on('click', 'a', function(e){
e.preventDefault();
$a = $(this);
var href= $a.attr('href');
$.ajax({
url:href,
type:'post',
dataType:'json',
success: function(response){
$html = $(response.page.html);
$wrapright = $($html[0]);
var nav = response.mainnav;
$container = $('#container');
$container.prepend($wrapright);
$('#leftsidebar').html(nav);
if(Modernizr.history){
window.history.pushState({href:'/'},'','/');
window.history.pushState({href:href},'',href);
document.title = response.page.seotitel;
}