/ / Rails 5とCoffeescript:クリックイベントが発生しない - jquery、ruby-on-rails、coffeescript

Rails 5とCoffeescript:On Clickイベント非トリガー - jquery、ruby-on-rails、coffeescript

私のWebページには、動的に自分のページに追加されるdiv要素があります。

そのdivには、クリックするとajaxを使って自分のサーバーからデータを取得するリンクがあります。

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

私がページ上のjQueryでon clickイベントを持っていれば、それはうまく機能します:

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

しかし、これをcoffeescriptに変換しようとすると、そのようにはなりません。

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

私のコーヒースクリプトに欠けているものはありますか?動的に追加された要素のクリックをキャプチャするようにコーヒースクリプトを修正するにはどうすればよいですか。

回答:

回答№1は0

2つのコード例は同等ではありません。

$("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
});

そして、これがあなたのコーヒースクリプトの翻訳版です。

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
});
});

これは、あなたが望むすべてのことを行う無名関数を作成し、それをjQueryコンストラクターに渡すことです。つまり、実際には呼び出されないため、何もしません。

いつもいつも、 常に 問題があるときはいつでもあなたの出力JavaScriptを見てください。対話型コンパイラを使うこともできます。 coffeescript.org 出力を見ながら関数を構築するため。