###実現したいこと
CoffeeScriptでクラスにして、カプセル化した上で、
チェックボックスを一括チェックするボタンをjQuery、CoffeeScriptで実装
現状
現状は以下のコードでボタン自体の実装はできています。
Haml
1... 2省略 3... 4// Railsの組み込みヘルパーの`button_tag`でボタンを生成 5 = button_tag t('.bulk_check'), type: 'button', class: 'btn bulk-check-btn' 6.controls.bulk-check 7 - samples.each do |sample| 8 = check_box_tag "factory_#{sample}", false 9 10
CoffeeScript
1$ -> 2 state = 'checked' 3 $('.bulk-check-btn').on 'click', -> 4 if state == 'checked' 5 $(this).text '一括チェックOFF' 6 $(this).nextAll('.bulk-check').find('input[type=checkbox]').prop 'checked', true 7 state = 'unchecked' 8 else 9 $(this).text '一括チェックON' 10 $(this).nextAll('.bulk-check').find('input[type=checkbox]').prop 'checked', false 11 state = 'checked'
試したこと
Coffee側の変更
class BulkCheckButton constructor: (@$btn) -> @checked = true @$btn.on 'click', => changeCheckState() changeCheckState: => @checked = !@checked @$btn.text if @checked then '一括チェックON' else '一括チェックOFF' @$btn.nextAll('.bulk-check').find('input[type=checkbox]').prop 'checked', @checked
また、namespace.js.coffeeというファイルに名前空間を用意
namespace.js.coffee
1window.SampleView = {}
Haml側で、呼び出してみたがうまくいかず....m(- - )m
... ... 省略 ... :javascript $(new SampleView.BulkCheckButton($('.bulk-check-btn')));
###環境
- 'rails', '~> 4.2'
- 'coffee-rails', '~> 4.0.0'
- haml-4.0.7
うまくいかないとのことですが、ブラウザのコンソールログにエラーメッセージとかは無かったのでしょうか?もしあれば、それも追記してみてください。何かわかるかも知れません。
あなたの回答
tips
プレビュー