Rails2:RJS - 远程页面更新时Javascript事件不起作用

时间:2015-09-15 20:21:58

标签: javascript jquery ruby-on-rails ajax rjs

我在当前项目中使用RJS。

我有包含数据的表行,最后一列包含一个按钮,用于绑定javascript click函数。

现在我必须做一个AJAX并将新创建的行追加到表中。它工作正常。这是create.rjs模板文件。

page.insert_html(:bottom, "products", :partial => "product_row.html.erb", :locals => {:product => @product})

JS代码:

jQuery(document).ready(function(){
  jQuery("button.add_color").click(function(){
    alert('ok');
  });
});

一切正常,但javascript click事件不适用于新创建的行。

请帮助我们如何通过AJAX保持为新添加的DOM绑定javascript事件?

1 个答案:

答案 0 :(得分:1)

我认为你应该使用jQuery' .delegate method

jQuery(document).ready(function(){
  jQuery('body').delegate('button.add_color', click, function(){
    alert('ok');
  });
});

来自delegate的文档:

  

根据一组特定的根元素,为现在或 future 中与选择器匹配的所有元素的一个或多个事件附加一个处理程序。

相关问题