2 votes

Coffeescript et jQuery ne renvoient pas le bon résultat avec l'événement "click".

J'essaie d'écrire un coffeescript pour me rendre le lien sur lequel j'ai cliqué et j'ai des difficultés.

Le problème est que l'élément que je récupère est le sélecteur qui démarre cette chaîne, mais ce n'est pas ce que je recherche.

$(document).ready ->
  $("#js-exercises-links").bind "cocoon:after-insert", (e, inserted_item) ->
    $("#js-exercise-links a.add_fields").data("association-insertion-node", '#js-outline-fields')
    $("select").chosen()

    $(".js-show-set-duration").click (e)=>
      e.preventDefault()
      console.info this

Dans cet exemple, lorsque je regarde ma console, je reçois en retour <div id='js-exercises-links'> ce que je veux vraiment, c'est l'élément courant sur lequel j'ai cliqué, ce qui serait une instance de <div class='js-show-set-duration'>

Qu'est-ce que je fais de mal ? Comment faire pour que $(this) fasse référence à l'élément sur lequel on a cliqué ?

6voto

Trent Earl Points 2816

Je crois que vous voulez la flèche mince et non la grosse flèche, il m'est difficile de tester cela sans le html cependant.

$(document).ready ->
  $("#js-exercises-links").bind "cocoon:after-insert", (e, inserted_item) ->
    $("#js-exercise-links a.add_fields").data("association-insertion-node", '#js-outline-fields')
    $("select").chosen()

    $(".js-show-set-duration").click (e)->
      e.preventDefault()
      console.info this

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X