Javascript 单选单击动作和长度动作

Javascript 单选单击动作和长度动作,javascript,jquery,jquery-selectors,jquery-events,Javascript,Jquery,Jquery Selectors,Jquery Events,我在页面上有radios按钮,当页面加载时,它会使用length动作来检查,然后隐藏/显示一些元素 当用户单击收音机时,它将隐藏并显示一些元素 我想知道这样做对吗?或者如何改进 $(document).ready(function() { if ($(".delivery_type:radio").length > 0) { if ($('#methodPickup').is(':checked')) { $(".methodDelivery").hide();

我在页面上有radios按钮,当页面加载时,它会使用length动作来检查,然后隐藏/显示一些元素

当用户单击收音机时,它将隐藏并显示一些元素

我想知道这样做对吗?或者如何改进

$(document).ready(function() {
if ($(".delivery_type:radio").length > 0) {
    if ($('#methodPickup').is(':checked')) {
        $(".methodDelivery").hide();
        $("#addressBookSelectBlock").hide();
        $(".customAddress").hide();
    }
    if ($('#methodDelivery').is(':checked')) {
        $(".methodPickup").hide();
    }
}


$(".delivery_type:radio").live('click', function() {
    if ($(this).val() == "pickup") {
        $(".methodDelivery").hide();
        $(".methodPickup").show();
        $("#addressBookSelectBlock").hide();
        $(".customAddress").hide();
    }
    if ($(this).val() == "delivery") {
        if ($(".selectAddressList").length == 0) {
            $(".customAddress").show();
        }

        $(".methodDelivery").show();
        $(".methodPickup").hide();
        $("#addressBookSelectBlock").show();
    }
});

});

您可以将所有
hide()
show()
函数组合在一起:

if ($('#methodPickup').is(':checked')) {
  $(".methodDelivery, #addressBookSelectBlock, .customAddress").hide();
}
// etc...
另外,我不知道为什么要使用
live()
,除非单选按钮是动态添加或删除的;如果它们不是动态的,只需使用
click()

共享一些HTML和一些更多的信息可能有助于提供更多的建议