/ / Rails 5 e Coffeescript: On Click Event Não acionado - jquery, ruby-on-rails, coffeescript

Rails 5 e Coffeescript: On Click Event Não acionado - jquery, ruby-on-rails, coffeescript

Na minha página da web, eu tenho um elemento div que é dinamicamente anexado à minha página.

Nesse div eu tenho um link que quando clicado, ele puxa os dados do meu servidor usando ajax.

<div class="main-div">
<a href="#" class="pull-data"><b>Click Here</b></a>
</div>

Se eu tiver um evento on click no jQuery na página, ele funciona bem:

$("a.pull-data").on("click", function(e) {
console.log("Clicked!");
}

No entanto, quando tento converter isso em coffeescript, nada é acionado:

jQuery ->
$("a.pull-data").on "click", ->
console.log "Clicked?"

Há algo faltando no meu café? Como posso consertar meu coffeescript para obtê-lo para capturar um clique em um elemento adicionado dinamicamente?

Respostas:

0 para resposta № 1

Seus dois exemplos de código não são equivalentes:

$("a.pull-data") // create a jquery object matching the CSS selector
.on("click", function(e) { // add a click handler that
console.log("Clicked!"); // logs "Clicked!" to the console
});

e aqui está a versão transpilada do seu café:

jQuery(function() { // pass anon fn to jQuery constructor
return $("a.pull-data").on("click", function() { // returning a fn that
return console.log("Clicked?"); // attaches the click handler
});
});

que está criando uma função anônima que faz todas as coisas que você quer e, em seguida, passa para o construtor jQuery, o que significa que não faz nada porque nunca é realmente chamado.

Sempre sempre, SEMPRE olhar para a sua saída JavaScript sempre que há um problema. Você pode até usar o compilador interativo em coffeescript.org para construir funções, mantendo um olho na saída.