我有一个嵌套在 jQuery onclick 事件中的 Ruby 方法,我希望在单击 div 时执行该方法。这行得通;但是,该方法也在页面刷新时执行。为什么它也会在页面刷新时执行,有没有办法将其限制为仅 onclick?
$(function() {
$('.myDiv').click(function(){
<% foo_bar %>
});
});
我有一个嵌套在 jQuery onclick 事件中的 Ruby 方法,我希望在单击 div 时执行该方法。这行得通;但是,该方法也在页面刷新时执行。为什么它也会在页面刷新时执行,有没有办法将其限制为仅 onclick?
$(function() {
$('.myDiv').click(function(){
<% foo_bar %>
});
});
foo_bar
当您单击 div 时,我看不到如何执行。Ruby 在服务器端执行,jQuery 在客户端执行。您无法从客户端执行 ruby 代码。
您foo_bar
是在刷新页面上执行的,因为服务器需要对其进行解释以将其结果放入<% %>
标签中。但是,当您单击 div 时,什么都不会发生,因为 jquery 函数将为空(因为您没有编写<%= %>
)。即使你写了<%= %>
,jQuery 也只会执行foo_bar
结果,而不是函数本身。
也许您可以在foo_bar
. 如果您想与服务器交互,您将需要类似Ajax
.
请查看我写的这篇博文。简而言之,ruby 代码在服务器上执行,而在客户端运行的 javascript 什么也看不到。要让 javascript 与 ruby 交互,您需要通过某种 ajax 请求向服务器发起一个请求。像 jquery 这样的库可以帮助解决这个问题。