Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   закрыти diva при клике вне его (https://javascript.ru/forum/dom-window/9506-zakryti-diva-pri-klike-vne-ego.html)

Hugo_O 21.05.2010 11:53

закрыти diva при клике вне его
 
как запустить функцию если пользователь кликнул в любое место вне div'a. +в диве есть еще элементы
(body onclick не в счет)

Skipp 21.05.2010 11:54

событие на document повесь и смотри чтобы target не был этим div'ом

Hugo_O 21.05.2010 11:58

Skipp,
я новичек в этом деле, можно поподробнее
вот див <div id=div1"></div>

micscr 21.05.2010 12:06

Надо еще смотреть чтобы родитель target-а не был этим дивом.
Цитата:

<div id=div1"></div>
да, солидно потрудились. А попытки на js что то решить были?

Skipp 21.05.2010 12:15

micscr,
Что-то совсем про это забыл:(

Hugo_O,
Почитайте для начала, если это вам интересно.
А фразу "я новичек в этом деле" пишет каждый второй и вообще она подразумевает, что человек пытается познать js, но большинство из них просто хочет что бы за них что-то сделали. Надеюсь вы не из тех.

Hugo_O 21.05.2010 12:16

micscr,
второй день уже попытки.
я не понимаю что за target и как его использовать в данной ситуации, вот и просил разъяснить.
я пробовал на боди ставить онклик, но это глупо, дивов таких сколько угодно может быть.
а вообще я делаю select! все сделано кроме вот этого момента, и это напрягает.

Skipp 21.05.2010 12:18

Hugo_O,
target - это свойство возникающего события, которое хранит в себе так сказать ссылку на элемент вызвавшего это событие.

Hugo_O 21.05.2010 12:19

Skipp,
еслиб я был из таких я бы просто забил бы уже, из-за этого момента не могу дальше продолжать более полезные моменты сайта делать - характер такой, пока не разберусь не пойду дальше(()

Hugo_O 21.05.2010 12:20

Skipp,
это свойство объекта event или что? чем отличается от srcElement?

micscr 21.05.2010 12:22

Вот что то типа:
document.body.onclick = function(e) {
  var who = e.target;
  var res = true;
  while (true) {
    if (who.id == 'dd') {
      res = false;
      break;
    }
    who = who.parentNode;
    if (who == document.body) break;
  }
  if (res) alert('Не по диву');
}

и для кроссбраузорности прикрути еще srcElement.


Часовой пояс GMT +3, время: 05:14.