Jquery / Ajax完成事件仅运行一次

时间:2015-10-14 10:00:55

标签: javascript jquery ruby-on-rails ajax

以下代码成功运行并向数据库添加新值...

<script type="text/javascript">
$(document).ready(function() {
  var i = 0;
  $(".testClick").click(function () {
    var dbvalue = $(this).data('dbvalue');
    var task_id = $(this).data('wrkval');
    $.ajax({
      type: 'POST',
      url: '/tasks/update_sub_task',
      dataType: 'json',
      data: {
        tasks: {
          id: task_id,
          subtask_id: dbvalue
        }
      },
    }).done(function() {
      console.log("SUCCESS");
      $("#working_area").html("<%= escape_javascript(render(:partial => 'sub_tasks.js.erb', locals: {items: params[:w]} )) %>");
    });
  });
});
</script>

<% @days.each do |e| %>
    <a id="ID=1" class="testClick" data-dbvalue="<%= e.id %>"  data-wrkval="<%= params[:w] %>"><%= e.name %></a>
<% end %>

它在控制台中记录“SUCCESS”,并用部分替换#working_area div的当前内容。

...奇

然而,当我点击下一个链接时,它会记录另一个SUCCESS消息,但由于某种原因它不会再次替换#working_area内容。

有没有人有任何想法如何在每次点击链接时更换/刷新?

更新 - 好的我已经重新加载了,我已经意识到这是因为我的部分是在点击模态时呈现的,它是“当时的”。

2 个答案:

答案 0 :(得分:1)

您应该使用on代替:

$(document).on("click",".testClick",function (){
    ..code here...
});    

答案 1 :(得分:0)

使用&#39; on&#39;事件

替换

  

$(&#34; .testClick&#34;)。click(function(){

  

$(&#34; .testClick&#34;)。off(&#39;点击&#39;)on(&#39;点击&#39;,功能(){

还要确保首次更换内容后#working_area仍然有效。