Afficher / Masquer (via la fonction de réduction de Bootstrap) divs basé sur le bouton radio

Je suis en train d'utiliser Bootstrap de l'effondrement de la fonctionnalité afficher/masquer les divisions fondées sur le bouton-radio est coché. J'ai été en mesure d'obtenir les choses fonctionne bien lorsque je n'utilise pas de fichier d'amorce de l'effondrement de la fonction, cependant, afin de donner plus de cohérence à sentir que je voudrais profiter de cette fonction.

Voici un extrait de l'HTML en question:

<div class="col-xs-12 form-group">
  <label class="radio-inline">
    <input type="radio" id="send-now-radio" name="when" value="send-now" checked> <strong>Send Now</strong>
  </label>
  <label class="radio-inline">
    <input type="radio" id="pickup-radio" name="when" value="pickup"> <strong>Hold for pickup</strong>
  </label>
  <label class="radio-inline">
    <input type="radio" id="fax-radio" name="when" value="fax"> <strong>Fax</strong>
  </label>
  <label class="radio-inline">
    <input type="radio" id="email-radio" name="when" value="email"> <strong>Email</strong>
  </label>
</div>
<div class="col-xs-12">
  <div id="send">Send</div>
  <div id="pickup">Pickup</div>
  <div id="fax">Fax</div>
  <div id="email">Email</div>
</div>

Et voici mon code javascript:

$(document).ready(function()
{
  //Hide all but one method div (since all are shown in case the user has JS disabled)
  $('#send').show();
  $('#pickup').hide();
  $('#fax').hide();
  $('#email').hide();

  //Attach to the radio buttons when they change
  $('#send-now-radio, #pickup-radio, #fax-radio, #email-radio').on('change', function () {
    //Make sure that this change is because a radio button has been checked
    if (!this.checked) return

    //Check which radio button has changed
    if (this.id == 'send-now-radio') {
      $('#send').collapse('show');
      $('#pickup').collapse('hide');
      $('#fax').collapse('hide');
      $('#email').collapse('hide');
    } else if (this.id == 'pickup-radio') {
      $('#send').collapse('hide');
      $('#pickup').collapse('show');
      $('#fax').collapse('hide');
      $('#email').collapse('hide');
    } else if (this.id == 'fax-radio') {
      $('#send').collapse('hide');
      $('#pickup').collapse('hide');
      $('#fax').collapse('show');
      $('#email').collapse('hide');
    } else //if (this.id == 'email-radio') {
      $('#send').collapse('hide');
      $('#pickup').collapse('hide');
      $('#fax').collapse('hide');
      $('#email').collapse('show');
    }
  });
};

Voici un lien vers un JS fiddle avec tout cela: http://jsfiddle.net/DTcHh/156/

Malheureusement, je suis absent quelque chose, provoquer le comportement est bizarre et pas ce que je m'attends. Toute aide est très appréciée.

source d'informationauteur Harry Muscle