jquery Animate只有一次

时间:2012-02-16 04:13:38

标签: jquery

我有两个单选按钮,点击后会显示两个内容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();
    }
}

对于相对简单的事情,似乎有很多额外的代码。

1 个答案:

答案 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

希望这会对你有所帮助。