如何将Rails变量传递到onclick函数调用中

4

你好,我有以下内容:

 = link_to @place.name, '#', onclick: 'get_maps(#{@location_string});'

我目前正在尝试使用一个Rails变量作为javascript调用的参数,但是由于某些原因,Rails变量@location_string没有被传递到带有该变量的javascript调用中。目前它被渲染为一个字符串:

<a href="#" onclick="get_maps(#{@location_string});">3308 Kanaina Ave</a>

有没有想法解决这个问题?
3个回答

5
您需要输入以下内容:
= link_to @place.name, '#', :onclick => "get_maps('#{@location_string}');"

onclick是link_to的一个参数。
而get_maps里面的参数应该放在''里。


4

#{}语法不适用于单引号内。你需要使用

"get_maps('#{@location_string}');"

我认为这不是它。我已经更改了它,但 get_maps 似乎没有触发。我知道 get_maps 是有效的,因为当我放置 onclick: 'get_maps("旧金山");' 时,它会执行正确的操作。 - locoboy
啊,我认为你需要在 #{@location_string} 周围加上单引号才能让你的代码工作。修改后我会给你信用 :) - locoboy
完成。假设您的@location_string已经带有引号。 - histocrat

2

有人说使用内联JS,比如onclick=''、onmouseover等是不好的。你可以通过链接的data属性传递Ruby变量,并使用jQuery的click()函数附加事件。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接