как скрыть div в JavaScript с помощью onblur - rails - PullRequest
2 голосов
/ 18 февраля 2010

У меня есть функция link_to_function, которая показывает скрытый div. Теперь я хотел бы скрыть этот div, если пользователь щелкает из этого div (onBlur или onclick). когда я должен вызвать эту функцию и как? это моя функция, которая показывает скрытый div:

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

Должно ли это быть внутри этой функции? или я должен вызвать внешнее действие со ссылкой на удаленный, чтобы следить за событиями на сайте? я мог бы использовать функцию onblur, если она ссылается на элемент формы (text_field или sth). но я не знаю, как и когда поставить код только для элемента div. я пытался что-то вроде:

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

Я не знаю много javascript, так что я немного потерян здесь. проверял гугл но не смог найти ничего полезного. любая помощь будет принята с благодарностью!

Ответы [ 2 ]

1 голос
/ 20 февраля 2010

Вы должны посмотреть на определение события клика по всему телу страницы.Если щелчок не наблюдается на просматриваемом div, закройте div.Возможно, вам придется посмотреть на захват и всплывающие события javascript, чтобы получить правильную цель щелчка.

http://www.quirksmode.org/js/events_order.html Очень хороший ресурс для понимания того, как клик будет перемещаться по вашей странице.

1 голос
/ 18 февраля 2010

Похоже, вы используете Prototype, поэтому вы можете использовать встроенные JavaScript-помощники в Rails, чтобы сделать это за вас.

В 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, как требуется.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...