2010-11-11 3 views
2

hey les gars, je fait une forme avec jquery et le seul problème est en fonction slideToggleavec entrée radio jquery

jquery

$(".ChoosePayMethod").click(function(){ 
     var ID = $(this).attr("id"); 
    if ($('input[name=ChoosePayMethod]:checked')) { 
     $("#PayMethod_"+ID).slideToggle("slow"); 

    } 

html

<label><input type="radio" name="ChoosePayMethod" value="epay" id="epay" class="ChoosePayMethod"/>پرداخت آنلاین توسط درگاه های اینترنتی </label><br />  
<label><input type="radio" name="ChoosePayMethod" value="bpay" id="bpay" class="ChoosePayMethod" />پرداخت به روش ارسال شماره فیش بانکی </label><br /> 
<label><input type="radio" name="ChoosePayMethod" value="cpay" id="cpay" class="ChoosePayMethod" />پرداخت به روش کارت به کارت و ثبت رسید</label><br /> 


    <div id="PayMethod_bpay" class="hidden" > soon </div> 
    <div id="PayMethod_cpay" class="hidden" > soon </div> 
    <div id="PayMethod_epay" class="hidden" > soon </div> 

il slideToggle quand je clique sur la boîte de radio, mais la question est de savoir comment fermer les autres boîtes div ouverts?

i besoin de ce que je clique sur une entrée radio j'ai un ouvert div

Répondre

1
$(".ChoosePayMethod").click(function(){ 
    $("div[id*='PayMethod_']:visible").slideToggle("slow"); 
     var ID = $(this).attr("id"); 
     if (this.checked) { 
     $("#PayMethod_"+ID).slideToggle("slow"); 
     } 
    }); 
0

Vous devez appeler slideDown() sur la div sélectionnée et slideUp() sur les deux autres.

0

Ajouter une classe aux divs tels que pay-method-details et faire

$('.pay-method-details').each(function() { 
    $(this).hide(); 
}); 

Avant de montrer la nouvelle. Vous pouvez également suivre la sélection actuellement sélectionnée et la fermer par elle-même.

Questions connexes