JQuery: если пользователь щелкает из div - PullRequest
2 голосов
/ 24 мая 2010

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

Это хорошо, но что, если пользователь щелкает из раздела? Я хочу, чтобы это также закрыло div. Единственная проблема заключается в том, что я не хочу прикреплять события кликов к оболочке на странице (поскольку она включает всплывающее меню). Я видел методы, которые оборачивают весь экран прозрачным div, а затем прикрепляют событие щелчка, чтобы поразить. Хотя это может сработать, это смущает пользователя, если он щелкает скрытым элементом div, намереваясь щелкнуть ссылку. Ему придется дважды щелкнуть ссылку. Раз два закройте div (скрыв ссылку), а в другой раз нажмите «подумать». Кроме того, вы теряете курсоры мыши, прикрепленные к любым замаскированным элементам на странице (например, указателю курсора ссылок и т. Д.).

Должен быть способ проверить, не щелкнул ли пользователь из div без модального режима и без прикрепления событий ко всей странице (включая упаковщики страниц и дочерние элементы).

onclicksomewhereelse = "closeme ();"

лол.

1 Ответ

4 голосов
/ 24 мая 2010

Предполагается:

<div id="dialog">...</div>

и:

#dialog { display: none; }

использование:

$(document).click(function() {
  if ($(this).parents("#dialog").length > 0) {
    $("#dialog").hide();
  }
});

Это не будет мешать другим обработчикам click(), которые у вас есть.

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