Pourquoi ne pas en faire mon CoffeeScript si/d'autre déclaration de travaux?

J'ai essayé de mettre à jour un prix total lorsque quelqu'un change l'option de sélection. Voici le sélectionner l'élément que j'utilise:

<select id="payment_talks_purchased" name="payment[talks_purchased]">
  <option value="1">One</option>
  <option value="2">Three</option>
</select>

C'est le jQuery que j'utilise:

jQuery(document).ready(function() {
  var price = $(".total-price span.price")
  var save = $(".savings")
  $("#payment_talks_purchased").change(function() {
    var selection = $("#payment_talks_purchased").val()
    if (selection == 2) {
      price.html("$12");
      save.css("visibility", "visible");
    } else if (selection == 1) {
      price.html("$5");
      save.css("visibility", "hidden");
    }
  });  
});

Il fonctionne parfaitement. Il change le prix de 12 $et montre la remise du message. Si je change l'option sélectionner à Un retour/1, il modifie le texte, dos à 5 $et supprime la remise du message.

J'ai converti ce CoffeeScript, mais il ne fonctionne que quand je fais le premier changement. Le prix est mis à jour. Cependant, lorsque j'essaie de le modifier pour l'option 1, elle n'est pas mise à jour.

jQuery ->
  price = $(".total-price span.price")
  save = $(".savings")
  select = $("#payment_talks_purchased")
  select.change ->
    selection = select.val()
    if selection = 2
      price.html "$12"
      return save.css "visibility", "visible"
    else if selection = 1
      price.html "$5"
      return save.css "visibility", "hidden"

J'ai travaillé sur ce projet pendant des heures et je suis à bout de ressources. Toute aide serait grandement appréciée.

OriginalL'auteur Benjamin Welch | 2011-11-11