jquery - 评估传递给 :onclick in Rails 的 jQuery 语句中的 Ruby 变量

标签 jquery ruby-on-rails

我正在迭代记录并想要为记录创建切换选项,但我无法用记录替换 div-id:

<% for bill in @bills %>
<% tmp = "test"%>
<%= link_to '&raquo now','#', :onclick => '$("#{tmp}").toggle();' %>

而不是得到:

<a href="#" onclick="$(&quot;#test&quot;);">&raquo now</a>

我得到:

<a href="#" onclick="$(&quot;#{tmp}&quot;).toggle();">&raquo now</a>

因此没有对字符串中的 ruby​​ 变量进行求值。我怎样才能做到这一点?

感谢您的帮助,我是 jQuery 新手。

最佳答案

为了让字符串插值在 Ruby 中工作,字符串需要用双引号括起来,即而不是:

:onclick => '$("#{tmp}").toggle();'

使用以下替代方案之一:

  • 将字符串括在双引号中并对字符串中出现的文字双引号进行转义:

    onclick => "$(\"#{tmp}\").toggle();

  • 使用 %Q 表示法,则无需转义双引号:

    :onclick => %Q{$("#{tmp}").toggle();}

  • 在 Ruby 代码中使用双引号,在将生成的 JavaScript 中使用单引号:

    :onclick => "$('#{tmp}'.toggle();"

关于jquery - 评估传递给 :onclick in Rails 的 jQuery 语句中的 Ruby 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2873720/

相关文章:

ruby-on-rails - 未初始化的常量ActionDispatch::Session::EncryptedCookieStore(NameError)

javascript - jQuery 将事件类添加到导航,现在导航不起作用

javascript - 防止用户在输入框中手动输入日期

javascript - Jquery 按钮标签选项不适用于输入类型复选框

javascript - 使用js在codeigniter中提示输入密码

javascript - 如何保持 qtip 固定

jquery - Sharepoint 2013 - EditForm,人员选择器新值不保存

ruby-on-rails - 在 HAML 上下文中使用 Rails `content_for` 助手的正确语法是什么

ruby-on-rails - 使用 Select2 将 ID 传递给 Rails

ruby-on-rails - Rails 3.2 和 css 文件的修改直到 Assets :precompile 才反射(reflect)