如何在点击时编辑列表项?使用AJAX,jQuery,Rails4

问题描述 投票:0回答:2

目前,我可以通过单击“编辑”链接来编辑列表项。

但是,我希望能够仅单击列表项进行编辑。

这里是我的_item.html.erb部分。一个项目有很多项目,这就是为什么我使用id="<%= dom_id(item)

<li class="klikkaa" id="<%= dom_id(item) %>">
    <%= item.description %>
    <%= link_to 'Edit', edit_project_item_path(item.project, item), remote: true %>
</li>  

Edit.js.erb:

$('#<%= dom_id(@item)%>').html("<%= j (render 'editform') %>");

我尝试在asset / javascripts / item.js中执行以下操作:

 $(document).ready(function(){
       $('.klikkaa').click(function(){
          $('#<%= dom_id(@item)%>').html("<%= j (render 'editform') %>");
       });
 });

但是,在控制台上出现错误:

“未捕获的错误:语法错误,无法识别的表达式:#”

单击列表项本身而不是单击“编辑”链接时如何编辑列表项?

javascript jquery ruby-on-rails ajax jquery-events
2个回答
1
投票

如果要从JS内部的rails中获取变量和值,则应将js文件的名称更改为item.js.erb

Rails guide中的示例,显示了如何使用Rails助手(asset_path

[如果您向JavaScript资产添加erb扩展名,则将其添加为例如application.js.erb,然后您可以在您的JavaScript代码:

$('#logo').attr({ src: "<%= asset_path('logo.png') %>" });

0
投票

毕竟,尽管起初我以为我不能使用嵌套资源,但实际上我还是能够使用“最佳的” gem。傻我我只需要定义:path,例如:]

<%= best_in_place item, :description, :path=> item_project_path(...) %>
© www.soinside.com 2019 - 2024. All rights reserved.