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

私はここ数時間苦労し、それを部分的に機能させました;)

これ(coffeescript)をファイルに入れてみてください。例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 に答える