0

gem (ios-checkboxes) で作成された iphonestyle チェックボックス ボタンがあります。ボタンの状態に応じて、このボタンを使用して、いくつかのテーブル行 (完了/未完了の仕様) のみを表示したいと考えています。初めて押すと正しく動作しますが、その後は動作しなくなります。

これがビューコードです。

= 'Show completed specifications'
= check_box @specifications, :status_set
%br
%table(id = "specifications")
  %thead
    %tr
      %th Title
      %th Added
      %th
  %tbody
    - @specifications.each do |spec|
      - if spec.status
        %tr{class: "completed"} // here i add a class on the COMPLETED specifications
          %th= spec.title
          %th= spec.created_at.strftime("%d-%m-%y %H:%M")
          %th= link_to "View", project_specification_path(params[:project_id], spec.id)
      - else
        %tr{class: "not_completed"} // NOT COMPLETED specifications
          %th= spec.title
          %th= spec.created_at.strftime("%d-%m-%y %H:%M")
          %th= link_to "View", project_specification_path(params[:project_id], spec.id)

コーヒースクリプトコード

$('.iPhoneCheckContainer').live "click", -> // the checkbox class
  is_completed = @.checked
  if is_completed
    $('.completed').show()
    $('.not_completed').hide()
  else
    $('.completed').hide()
    $('.not_completed').show()
4

2 に答える 2

1

あなたが本当にする必要があるのは次のことだと思います:

if $(this).is(':checked')
  // Stuff when checked
else
  // stuff when not checked

これはおそらく、通常のチェックボックスをチェックする理想的な方法です。ios-checkboxes が生成するマークアップの種類がわからないため、これが機能する場合と機能しない場合があります。

編集:

このliveメソッドは jquery では非推奨です。orの代わりにonを使用してイベントをバインドする必要があります。bindlive

$('.iPhoneCheckContainer').on "click", ->
  // Event
于 2012-08-24T17:04:36.833 に答える
0

問題は

is_completed = @.checked

ios-checkboxes gem が通常のチェックボックスのように機能しないようです。

任意のクリック イベントで true/false の間で変数を切り替える関数を使用して、ボタンに新しいクラスを追加することで問題を解決します。その変数に応じて、完了/未完了の仕様を表示しました。

于 2012-08-24T17:01:05.540 に答える