我有一个标签式登录页面,我想在每个选项卡上托管一个表单,但是从它们背后的代码可以在一个页面上。
这意味着有两种形式。
例:
<nav id="secondary">
<ul>
<li id="current"><a href="#login">Login</a></li>
<li><a href="#forgot">Forgot Password</a></li>
</ul>
</nav>
<div id="login" class="tab">
<br /><br />
<form runat="server" visible="true" class="frmControl">
</form>
</div>
<div id="forgot" class="tab">
<br /><br />
<form runat="server" visible="false" class="frmControl"></form>
</div>
然后我有以下jquery在登录div和忘记div之间切换
$(".tab").hide();
if ($("nav#secondary ul li.current").length < 1) {
$("nav#secondary ul li:first-child").addClass("current");
}
var link = $("nav#secondary ul li.current a").attr("href");
$(link).show();
$("nav#secondary ul li a").click(function () {
if (!$(this).hasClass("current")) {
$("nav#secondary ul li").removeClass("current");
$(this).parent().addClass("current");
$(".tab").hide();
$(".frmControl").attr("Visible", "false");
var link = $(this).attr("href");
$(this).attr("Visible", "true");
$(link).show();
initBackground();
}
return false;
});
它无法正常工作,因为它只将'.frmControl'类设置为visible = false。但是当我重新激活选项卡时,它不会再次为活动选项卡表单将其设置为true,并将非活动选项卡表单设置为false。
对不起,如果我没有正确解释。
-RD
你不想设置$(".frmControl").attr("Visible", "false");
,因为你已经使用$(".tab").hide();
隐藏了标签
$(".tab").hide();
if ($("nav#secondary ul li.current").length < 1) {
$("nav#secondary ul li:first-child").addClass("current");
}
var link = $("nav#secondary ul li.current a").attr("href");
$(link).show();
$("nav#secondary ul li a").click(function () {
if (!$(this).hasClass("current")) {
$("nav#secondary ul li").removeClass("current");
$(this).parent().addClass("current");
$(".tab").hide();
// $(".frmControl").attr("Visible", "false");// remove this line
var link = $(this).attr("href");
$(this).attr("Visible", "true");
$(link).show();
initBackground();
}
return false;
});
这是http://jsfiddle.net/VGRZS/的工作示例