").insertAfter("tr-6ren">
gpt4 book ai didi

javascript - link_to 方法导致 jquery 在 js.erb 中不加载

转载 作者:行者123 更新时间:2023-11-29 14:49:35 26 4
gpt4 key购买 nike

我正在尝试使用 jquery .insertafter 方法在表中动态插入一行。我的代码在“create.js.erb”中,如下所示:

$("<tr><td><%= @work.id %></td><td><%= @work.user.lname %>, <%=@work.user.fname %></td><td><%= link_to(@work.project.name, @work.project, 'data-no-turbolink' => true) %></td><td><%=@work.datetimeperformed%></td><td><%=@work.hours %></td></tr>").insertAfter("tr#headerrow");

只要我不使用“link_to”方法,代码就可以正常工作。当我使用“link_to”时,它就停止工作了。

我厌倦了在“insertafter”方法之前添加警报。添加 link_to 甚至不会触发警报。

页面似乎呈现良好,没有 javascript 错误。 rails 控制台日志看起来不错:

User Load (0.2ms)  SELECT  "users".* FROM "users" WHERE "users"."id" = ? LIMIT 1  [["id", 281110143]]
Project Load (0.1ms) SELECT "projects".* FROM "projects" WHERE "projects"."id" = ? LIMIT 1 [["id", 730774123]]
Rendered works/create.js.erb (3.0ms)

这是我调用 create.js.erb 的 Controller 代码。 format.js {} 调用 create.js.erb。

  def create
@work = Work.create(work_params)

respond_to do |format|
if @work.save
format.html {redirect_to @work, notice: 'Work Created'}
format.js { render content_type: 'text/javascript'}
else
format.html {render 'new'}
format.js {}
end
end

结束

我厌倦了 Stack overflow 中关于 turbolinks 的解决方案,但也没有帮助。

Rails, javascript not loading after clicking through link_to helper

Rails 4: disable Turbolinks in a specific page

Using turbolinks in a Rails link_to

在此感谢您的帮助。

谢谢!麦克格

最佳答案

我可以看到带有 link_to 的版本吗?

我无法从您提供的内容中判断,但您是否在将 html 放入 jquery 字符串之前对其进行了清理?

我认为你在做什么:

$("<%= link_to 'whatever', 'whatever' %>")
#=> $("<a href="whatever">whatever</a>")

你应该做什么:

$("<%=j link_to 'whatever' %>")
#=> $("<a href=\"whatever\">whatever</a>")

开头的 'j' 是一种确保它不会从 javascript 字符串中转义的方法。

在没有更多信息的情况下,这是我最好的猜测。

关于javascript - link_to 方法导致 jquery 在 js.erb 中不加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27748265/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com