jQuery两个选项卡
jQuery Two Tabs
我有两个选项卡:login &登记。这很简单,当注册选项卡被点击时隐藏登录部分,反之亦然。当我点击注册选项卡,登录部分是隐藏的,它的工作,但当我尝试再次点击登录选项卡,一切都搞砸了。
代码如下:
jsfiddle.net/gdc5ryqj/
我在这里创建了一个小提琴的分叉:
http://jsfiddle.net/fn5yjrgw/看起来你正在使用bootstrap,所以我建议使用bootstrap选项卡,如果可能的话,只应用你的样式,但如果这不是一个选项,这里有一个例子(链接到上面的jsfiddle)。
HTML:我更改了选项卡用于确定<div>
的活动状态的元素,而不是<p>
,并在登录选项卡上放置了一个"active"类,使其成为默认显示的。
我在CSS的最后添加了几行:
/*** Additional Styles (ryantdecker) ***/
#tab-login, #tab-register {display:none;}
#tab-login.tab-active, #tab-register.tab-active {display:block;}
.login-reg-tab {}
.login-reg-tab.active p {
color: #E76E5D;
border-bottom: 3px solid;}
最后,jQuery简单地从选项卡和面板区域分别删除活动类和选项卡活动类,然后根据单击的元素将它们添加回适当的类,以便CSS负责隐藏和显示
$(document).ready(function(){
$('.login-button').click(function(){
$('.login-reg-tab').removeClass('active');
$(this).addClass('active');
$('.login-reg-input-holder').removeClass('tab-active');
$('#tab-login').addClass('tab-active');
});
$('.register-button').click(function(){
$('.login-reg-tab').removeClass('active');
$(this).addClass('active');
$('.login-reg-input-holder').removeClass('tab-active');
$('#tab-register').addClass('tab-active');
});
});
(当然有一些方法可以使它更简单,但不需要重新编写标记和类,我看到您有一个非常大的CSS文件,可能需要重构。)
您忘记为"tab-active"添加类了
$(".register-button").click(function () {
if ($("#tab-login").hasClass("tab-active")) {
$("#tab-login").removeClass("tab-active");
if($(".login-button p").hasClass("login-reg-text-active")){
$(".login-button p").removeClass("login-reg-text-active");}
$("#tab-login").toggle();
}
if($('#tab-login').hasClass('tab-active')) {
$('#tab-register').hide();
}
$("#tab-register").show();
$(".register-button p").addClass("login-reg-text-active");
$("#tab-register").addClass("tab-active")
});
$(".login-button").click(function () {
if ($("#tab-register").hasClass("tab-active")) {
$("#tab-register").removeClass("tab-active");
if($(".register-button p").hasClass("login-reg-text-active")){
$(".register-button p").removeClass("login-reg-text-active");}
$("#tab-register").hide();
//$("#tab-register").toggle();
}
if($('#tab-register').hasClass('tab-active')) {
$('#tab-login').hide();
}
$("#tab-login").show();
$(".login-button p").addClass("login-reg-text-active");
$("#tab-login").addClass("tab-active")
});
相关文章:
- 我可以在Dynamics CRM 2016的复合地址字段中添加两个选项字段吗
- 仅在使用javascript和html的浏览器中在相同的两个选项卡之间切换
- 一个文本框,其中两个选项的值不同
- 两个选项卡—第一个选项卡在第二个选项卡中处于调试模式时被卡住
- 我有下面垂直菜单的jquery代码,当我悬停在apparels选项卡上时,我有两个选项卡作为apparels和化妆品
- CRM 2011+问题与javascript中的两个选项集
- 如何使用标题在 PHP 中打开新的两个选项卡
- 引导导航选项卡同时显示两个选项卡
- Boostrap和Angular:同时保持两个选项卡处于活动状态
- 如果我有两个选项的代码,单选按钮的结果将无法正常工作
- 并排显示选择框中的两个选项
- 切换按钮在两个选项卡之间切换
- 有两个选项卡打开到网站,你能知道哪个选项卡是活动的吗
- 删除两个选项
- onchange上有两个选项
- Js在两个选项之间切换;如果“;
- jQueryUI在另一个选项卡中有两个选项卡-高度是't在隐藏时设置
- add()生成两个选项卡,其中一个处于奇数位置,为空且未使用
- Jquery一旦从选择下拉列表中选择两个选项运行代码
- 当两个选项被选中时,使用jquery更改按钮上的链接