我有一个用gem制作的iphonestyle复选框按钮(ios-checkboxes)。我希望通过此按钮仅显示一些表行(已完成/未完成的规范),具体取决于按钮状态。如果我第一次按它,工作正确,之后它停止工作。
这是视图代码。
= '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)
coffeescript代码
$('.iPhoneCheckContainer').live "click", -> // the checkbox class
is_completed = @.checked
if is_completed
$('.completed').show()
$('.not_completed').hide()
else
$('.completed').hide()
$('.not_completed').show()
答案 0 :(得分:1)
我怀疑你真正需要做的是:
if $(this).is(':checked')
// Stuff when checked
else
// stuff when not checked
这可能是检查普通复选框的理想方式。虽然我不确定ios复选框会产生什么样的标记,所以这可能适用于您,也可能不适合您。
编辑:
jquery中不推荐使用live
方法。您应该使用on来绑定事件而不是bind
或live
:
$('.iPhoneCheckContainer').on "click", ->
// Event
答案 1 :(得分:0)
问题在于
is_completed = @.checked
看起来ios-checkboxes gem不像普通的复选框那样工作。
我通过在按钮上添加一个新类来解决问题,该函数可以在任何单击事件上将变量切换为true / false。根据该变量,我显示已完成/未完成的规范。