我有两个单选按钮,点击后会显示两个内容div中的一个。代码:
$("input[name='registrationType']").click(function () {
var registrationType = $(this).attr('id');
if (!registrationType) {
return;
}
$("#contributorForm, #studentForm").hide();
if (registrationType == "Student") {
$("#studentForm").show();
} else if (registrationType == "Contributor") {
$("#contributorForm").show();
}
});
我想在此过程中添加一个简单的动画.show('slow')
。正如我想到的那样,我意识到我只想在第一次单击一个单选按钮时使用动画。有没有办法做到这一点,而不必输入一些逻辑来确定它是否是第一次点击(例如在我的隐藏逻辑之前,检查它们是否都隐藏了,这是&#34 ;在加载"状态),然后编码这样的东西:
if (registrationType == "Student") {
if(firstClick) {
$("#studentForm").show('slow');
} else {
$("#studentForm").show();
}
}
对于相对简单的事情,似乎有很多额外的代码。
答案 0 :(得分:1)
工作解决方案
$("input[name='registrationType']").click(function() {
var regType = $(this).attr('id');
if (!regType) return;
$('div[id$="Form"]').hide();
var contro = $('div[id^="' + regType.toLowerCase() + '"]');
if ($(contro).attr("data") != null) $(contro).show();
else $(contro).show('slow');
$('div[id$="Form"]').attr("data", "shown");
});
jsFiddle.net上的Demo。
希望这会对你有所帮助。