如何最小化我的jQuery脚本

时间:2012-04-25 09:01:56

标签: jquery

我正在研究jQuery Library中的简单操作。

$('#hasAccount').click(function() {
        $('.authForm').slideDown(500, function() {
            if ($('.shippingAddress').is(':visible')) {
                $('.shippingAddress').slideUp(250);
            }
        });
});

$('#hasNotAccount').click(function() {
        $('.shippingAddress').slideDown(500, function() {
            if ($('.authForm').is(':visible')) {
                $('.authForm').slideUp(250);
            }
        });
});

$('#hasAccount').click(function() { $('.authForm').slideDown(500, function() { if ($('.shippingAddress').is(':visible')) { $('.shippingAddress').slideUp(250); } }); }); $('#hasNotAccount').click(function() { $('.shippingAddress').slideDown(500, function() { if ($('.authForm').is(':visible')) { $('.authForm').slideUp(250); } }); });

以下代码正常运行:http://jsfiddle.net/6tZQ2/2/

这很简单,但我想知道是否有任何解决方案将此脚本最小化为1个动作?

谢谢: - )

5 个答案:

答案 0 :(得分:1)

答案 1 :(得分:0)

您可以使用slideToggle并丢失if语句

答案 2 :(得分:0)

这里你走了 - 尽管有数以百万计的方法可以做得更好/更好/更紧凑......这是我心中最快的......:/

http://jsfiddle.net/neuroflux/6tZQ2/3/

[edit]虽然 - 这是基于name属性的 - 所以最好以另一种方式做到这一点:)

答案 3 :(得分:0)

试试吧,我不是jquery的专家:

$('input[name="account"]').click(function(e) {
    if(e.target.id == 'hasAccount') {
        $('.authForm').slideDown(500, function() {
            if ($('.shippingAddress').is(':visible')) {
                $('.shippingAddress').slideUp(250);
            }
        });
    } else {
        $('.shippingAddress').slideDown(500, function() {
            if ($('.authForm').is(':visible')) {
                $('.authForm').slideUp(250);
            }
        });
    }
});

答案 4 :(得分:0)

如何在更一般的dom中包含这两个函数。