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 中已弃用。您应该使用on来绑定事件而不是bindor live

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

问题在于

is_completed = @.checked

看起来 ios-checkboxes gem 不像普通复选框那样工作。

我通过在按钮上添加一个新类来解决问题,该类具有在任何单击事件上在真/假之间切换变量的功能。根据该变量,我显示了已完成/未完成的规格。

于 2012-08-24T17:01:05.540 回答