Проблема jQuery с событием размытия - PullRequest
1 голос
/ 04 декабря 2009

Вот моя проблема:

У меня есть элемент div, при нажатии которого появляется другой элемент div. Теперь я понятия не имею, как сделать это, где бы я ни нажимал на страницу, этот div удаляется. Я имею в виду, я знаю, как удалить это, но какие события я должен иметь в виду, чтобы сделать это !? Я не могу сделать это с помощью фокуса / размытия, могу я. Я имею в виду, что я пытался, и это не работает, так что я думаю, что нет. Возможно, это очень просто, но я думаю, что я новичок в этом ...

Cheeers

Ответы [ 2 ]

5 голосов
/ 04 декабря 2009

Когда вы добавляете его в DOM, вы также можете создать обработчик событий одноразового щелчка и прикрепить его к документу. Что-то вроде

// <div> has just been added to the DOM
$(document).one("click", function() { $('#theDiv').remove(); }); 

Вот Рабочая демоверсия . добавьте / edit к URL, чтобы увидеть код

1 голос
/ 04 декабря 2009

Я видел другой вопрос сегодня , но он включал похожий механизм.

Обычно вы хотите прикрепить обработчик клика к document, но запускаете его, только если щелчок не происходит в определенных объектах:

С этим HTML:

<div id="menu">Click Me</div>
<div id="other-popup"> Wow, I have been shown!</div>

Используйте это (или что-то подобное):

$(document).click(function(e){
   var $target = $(e.target);
   // For all clicks except those in the menu or the popup, hide the popup
   if(!$target.closest("#menu").length && !$target.closest("#other-popup").length ){
      $("#other-popup").hide();
   }
});

closest() ищет в текущем узле и узлы-предки для совпадения.

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