3

我在将不显眼的 js 文件与视图链接时遇到问题。

我有名为 index.html.erb 的视图

...
<div id="fooBar">say bye!</div>
...

我也有 js 文件 index.js.erb

$("#fooBar").html("say hello!")

目前我收到再见消息,因为没有执行 javascript 文件。

我做错了什么?

在我看来,js.erb 并没有用于此目的。我只需要在普通的 .js 文件中添加脚本引用,在该文件中查看特定的客户端逻辑

谢谢, 阿列克谢

4

3 回答 3

2

您是否在控制器中指定了 render_with :js ?

不幸的是,你在那里编写脚本的方式不会真正起作用。您只能渲染一件事 html 或 js。使用 Rails UJS,当您单击显示(例如)时,它会根据您是否让 JS 动态呈现或使用 HTML 呈现来决定。你不能一次渲染两个东西。

试试这个: http ://www.simonecarletti.com/blog/2010/06/unobtrusive-javascript-in-rails-3/

于 2010-08-19T17:19:44.787 回答
1

您是在元素或文档加载后执行此操作吗?

尝试

$(function() {
    $("#fooBar").html("say hello!")
});

假设您使用的是 jQuery,这似乎是这种情况。

于 2010-08-19T06:34:25.253 回答
1

你有

<%= javascript_include_tag :defaults %>
<%= csrf_meta_tag %>

在你的意见/布局/application.html?我遇到了 JS 问题,因为我忘记了后一个问题(仅限 Rails 3)。

于 2010-08-19T11:45:09.063 回答