2010-02-18 38 views
2

我有一个显示隐藏div的link_to_function。现在我想隐藏这个div,如果用户点击这个div(onBlur或onclick)。我应该什么时候调用这个函数?这是我的功能,显示隐藏的div:如何在javascript中使用onblur来隐藏div - rails

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

应该从这个函数里面?或者我应该通过链接到远程来调用外部操作以查看网站上的事件?如果它引用一个表单元素(text_field或sth),我将能够使用函数onblur。但我不知道如何或何时把代码放在div元素中。我正在尝试......:

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

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

+0

+1欢迎来到Stack Overflow,rxever。 – 2010-02-18 14:46:17

回答

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

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

http://www.quirksmode.org/js/events_order.html非常好的资源,可以帮助您了解点击在您的网页上的移动方式。