如何使用onblur - rails在javascript中隐藏div

时间:2010-02-18 14:41:31

标签: javascript ruby-on-rails ruby

我有一个显示隐藏div的link_to_function。现在我想隐藏这个div,如果用户点击这个div(onBlur或onclick)。我应该什么时候打电话给这个功能?这是我显示隐藏div的函数:

<%= link_to_function "ShowHorse", "$('horsePic').show();" :class =>"links_02"%>

它应该来自这个功能吗?或者我应该调用带有远程链接的外部操作来管理网站上的事件?如果它引用表单元素(text_field或sth),我将能够使用函数onblur。但我不知道如何或何时为div元素添加代码。我试着像:

:onclick=>"if($('loginContainer').onClick) {} else {$('loginContainer').hide}"  

我不知道很多javascript所以我有点迷失在这里。正在检查谷歌,但无法找到任何有用的东西。任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:1)

您似乎正在使用Prototype,因此您可以使用Rails中的内置JavaScript帮助程序为您执行此操作。

在JavaScript与Ruby之间要注意的一件事是,除非包含括号,否则不会调用函数。如果没有括号,您将获得对函数的引用。

// Check to see if a function is defined
if ($('something').onClick)
  true;

// Check to see if a defined function returns a true value by calling it
if ($('something').onClick())
  true;

通常,您可以根据需要在link_to定义中引入函数。

答案 1 :(得分:1)

您应该查看在整个页面上定义点击事件。如果您正在观看的div上没有发现点击,请关闭div。您可能需要查看捕获和冒泡javascript事件,以获得正确的单击目标。

http://www.quirksmode.org/js/events_order.html非常好的资源,用于了解点击在页面中的移动方式。