我对 jQuery 相当陌生,并且我正在处理的当前项目存在问题。
我一直在寻找具有类似问题的其他问题,但在他们的情况下,解决方案对我不起作用。
在此站点上,用户将单击导航列表中的链接,该链接将滑出包含信息的 div。我使用了切换命令,因为我希望能够通过单击相同的链接来关闭显示和隐藏 div,我还希望能够通过单击不同的链接来隐藏活动的 div,目前效果很好。问题是当单击不同的链接并隐藏内容时,您必须双击以前的链接才能重置切换。
如何重置此切换,以便用户不必双击?
这是网站的链接www.RickPatinoPhotography.com
我的代码:
//Slide Bio Div
$('#showBio').toggle(function() {
//shows Bio div
$('#bio').animate({ marginLeft: '+=1316px'}, 500);
//hides other divs if showing
$('#work').animate({ marginLeft: '0px'}, 500);
$('#contact').animate({ marginLeft: '0px'}, 500);
}, function () {
//returns Bio div to default state
$('#bio').animate({ marginLeft: '0px'}, 500);
});
//Slide Work Div
$('#showWork').toggle(function() {
//shows Work div
$('#work').animate({ marginLeft: '+=1316px'}, 500);
//hides other divs if showing
$('#bio').animate({ marginLeft: '0px'}, 500);
$('#contact').animate({ marginLeft: '0px'}, 500);
//returns Contact div to default state
}, function () {
$('#work').animate({ marginLeft: '0px'}, 500);
});
//Slide Contact Div
$('#showContact').toggle(function() {
//shows Contact div
$('#contact').animate({ marginLeft: '+=1316px'}, 500);
//hides other divs if showing
$('#work').animate({ marginLeft: '0px'}, 500);
$('#bio').animate({ marginLeft: '0px'}, 500);
//returns Contact div to default state
}, function () {
$('#contact').animate({ marginLeft: '0px'}, 500);
});
});
编辑: 嗯,我能够想出一个解决方案,我能够创建一个基本的 .click 函数以及一个像冠军一样工作的 if/else 语句。感谢大家的关注。
新代码:
//Slide Bio Div
$('#showBio a').click(function() {
//shows Bio div
if ($('#bio').css("marginLeft") == "1316px"){
$('#bio').animate({ marginLeft: '0px'}, 500);
} else {
$('#bio').animate({ marginLeft: '+=1316px'}, 500);
//hides other divs if showing
$('#work, #contact').animate({ marginLeft: '0px'}, 500);
$('#showBio a').addClass('activePage');
$('#showWork a, #showContact a').removeClass('activePage');
$("#showBio li, #showBio a").click(false);
}
});
//Slide Work Div
$('#showWork a').click(function() {
//shows Bio div
if ($('#work').css("marginLeft") == "1316px"){
$('#work').animate({ marginLeft: '0px'}, 500);
} else {
$('#work').animate({ marginLeft: '+=1316px'}, 500);
//hides other divs if showing
$('#bio, #contact').animate({ marginLeft: '0px'}, 500);
$('#showWork a').addClass('activePage');
$('#showBio a, #showContact a').removeClass('activePage');
}
});
//Slide Contact Div
$('#showContact a').click(function() {
//shows Bio div
if ($('#contact').css("marginLeft") == "1316px"){
$('#contact').animate({ marginLeft: '0px'}, 500);
} else {
$('#contact').animate({ marginLeft: '+=1316px'}, 500);
//hides other divs if showing
$('#work, #bio').animate({ marginLeft: '0px'}, 500);
$('#showContent a').addClass('activePage');
$('#showWork a, #showBio a').removeClass('activePage');
}
});
});