1

我在 js.erb 文件中添加了一个新元素,并尝试将点击事件分配给新添加的元素。

这就是我在 js.erb 中的内容:

$("#<%= linkid %>").on("click", '<%= j function(event) {$(this).parent().next().toggle(); event.preventDefault();}) %>' );

使用“$”编写函数时出现语法错误。这里有什么解决方法?如果我必须将此函数放在此文件中的 var 中,我该怎么做?一般来说,有没有更好的方法?

更新:错误信息

/create.js.erb:7: syntax error, unexpected $undefined
....append= ( j function(event) {$(this).parent().next().toggle...
...                               ^
/create.js.erb:7: syntax error, unexpected ')', expecting keyword_end
...(); event.preventDefault();}) );@output_buffer.safe_concat('...
...                               ^):
4

1 回答 1

2

里面<%= ... %>的东西应该是 Ruby 表达式,而不是 JavaScript。这个:

<%= j function(event) {$(this).parent().next().toggle(); event.preventDefault();}) %>

根本不需要 ERB,那只是普通的旧 JavaScript。此外,jQuery 的第二个参数$(...).on('click', ...)应该是 JavaScript 函数,而不是 JavaScript 字符串。你要这个:

$("#<%= linkid %>").on("click", function(event) {
    $(this).parent().next().toggle();
    event.preventDefault();
});
于 2012-10-13T19:40:49.057 回答