1

我用best_in_place.

我尝试突出显示该行的复选框被选中的行。但它不起作用。

application.js

$(document).ready(function() {
   jQuery(".best_in_place").best_in_place();
});


$('.highlight_on_success').bind("ajax:success", function(){
   $(this).closest('tr').effect('highlight'));
});

这是我的index.html.erb

<html>
<body>
<h1>TODO TASKS</h1>

<table>
  <tr>
    <th>Done</th>
    <th>Admin Email</th>
    <th>Task</th>
    <th>Done</th>
  </tr>

<% @tasks_worker_todo.each do |task| %>
  <tr>
    <td = "done_id"> <%= best_in_place task, :done,:classes => 'highlight_on_success', type:     :checkbox, collection: %w[No Yes] %></td>
    <td><%= task.admin_mail %></td>
    <td><%= task.task %></td>
    <td><%= task.done %></td>
  </tr>
<% end %>
</table>

<br><br>
<br><br>

<h1>DONE TASKS</h1>
<table>
  <tr>
    <th>Done</th>
    <th>Admin Email</th>
    <th>Task</th>
    <th>Done</th>
  </tr>

<% @tasks_worker_done.each do |task| %>
  <tr>
    <td> <%= best_in_place task, :done, type: :checkbox, collection: %w[No Yes]%></td>
    <td><%= task.admin_mail %></td>
    <td><%= task.task %></td>
    <td><%= task.done %></td>
  </tr>
<% end %>
</table>

<br />
</body>
</html>

请帮忙!

更新:

我尝试了下一行,但没有光:/

$('.highlight_on_success').bind($("#done_id")).click(function(){ 
    $(this).closest('tr').effect('highlight'));‌​
});

这就是我的 html 的样子:

在此处输入图像描述

复选框位于绿线上方(从“是”更改为“否”)。

(与红线上方的列无关)

4

2 回答 2

1

我在过去的几个小时里一直在努力,并让它发挥作用,partialy ;)

尝试将此(咖啡脚本)放入您的文件中,例如tasks.js.coffe

jQuery ->
  $('.best_in_place').best_in_place()

$(".highlight_on_success").bind "ajax:success", ->
  $(this).effect "highlight",
    color: "red",
    1000

我说偏了,因为没有closest("tr")电话,我认为这不是致命的。

我研究了ajax:success,它用于 best_in_place 的每个输入和控制(包括复选框)。

这是我的show.html.haml

%tr
  %td
    = best_in_place @product, :task, :type => :checkbox, :collection => ["Yes", "NOpe"], :classes => 'highlight_on_success'   

如您所见,id避免了定义 ,gem 有自己的命名输入约定,因此无法更改id复选框的 。

于 2013-01-07T23:52:35.057 回答
1

尝试这个 :

$('.highlight_on_success').on('click',function(){ 
    $(this).closest('tr').effect('highlight');‌​
});
于 2013-01-07T23:16:28.843 回答