0

我有一个嵌套在 jQuery onclick 事件中的 Ruby 方法,我希望在单击 div 时执行该方法。这行得通;但是,该方法也在页面刷新时执行。为什么它也会在页面刷新时执行,有没有办法将其限制为仅 onclick?

 $(function() { 
   $('.myDiv').click(function(){
      <% foo_bar %>
   });
 });
4

2 回答 2

3

foo_bar当您单击 div 时,我看不到如何执行。Ruby 在服务器端执行,jQuery 在客户端执行。您无法从客户端执行 ruby​​ 代码。
foo_bar是在刷新页面上执行的,因为服务器需要对其进行解释以将其结果放入<% %>标签中。但是,当您单击 div 时,什么都不会发生,因为 jquery 函数将为空(因为您没有编写<%= %>)。即使你写了<%= %>jQuery 也只会执行foo_bar结果,而不是函数本身。

也许您可以在foo_bar. 如果您想与服务器交互,您将需要类似Ajax.

于 2012-09-13T00:25:44.847 回答
1

请查看我写的这篇博文。简而言之,ruby 代码在服务器上执行,而在客户端运行的 javascript 什么也看不到。要让 javascript 与 ruby​​ 交互,您需要通过某种 ajax 请求向服务器发起一个请求。像 jquery 这样的库可以帮助解决这个问题。

于 2012-09-13T00:32:45.417 回答