Перейти к содержимому



Скрытие блока при клике вне его области JavaScript

#1 Avin

Avin
  • Пользователь
  • 82 сообщений
  • Репутация: 1
0

Отправлено 05 Июнь 2012 - 20:12

Добрый день, уважаемые форумчане!

Прошу Вашей помощи в следующей проблеме.

Имеется блок ракрывающийся и скывающийся по клику

Onclick="toggle_visibility(my_div);"

Сама функция ракрывающая и скрывающая блок

function toggle_visibility(id)
    {
	    var e = document.getElementById(id);

	    if(e.style.display == 'block') {
		    e.style.display = 'none';
    }
	    else {
		    e.style.display = 'block';
    }
    }

Все отлично работает, когда кликаешь по ссылке у которой прописано Onclick="toggle_visibility('my_div');"

А я бы хотел, чтобы блок так же скрывался (только скрывался) если произведен клик вне моего "my_div"

Уважаемые знатоки, прошу Вашей помощи.

 

 

  • 0

#2 c0ns0l3

c0ns0l3
  • Пользователь
  • 264 сообщений
  • Репутация: 49

Отправлено 06 Июнь 2012 - 18:38

Сделай событие на клик в body или html
  • 0

#3 Avin

Avin
    Topic Starter
  • Пользователь
  • 82 сообщений
  • Репутация: 1

Отправлено 06 Июнь 2012 - 20:45

А как это сделать? какой функцией? как обработать ее?

Подскажите, пожалуйста.
  • 0

#4 c0ns0l3

c0ns0l3
  • Пользователь
  • 264 сообщений
  • Репутация: 49

Отправлено 06 Июнь 2012 - 20:50

Ну так же само идешь только к тэгу body

document.getElementsByTagName('body')

Цепляешь к нему ф-цию на клик. Которая скроет елемент твой.

Я могу написать исходник только на jQuery, вспоминать сейчас DOM в основе JS - времени нету.

Единственное что, тебе прийдется еще проверить, что б у event.target небыл твой елемент для скрытия который, и является ли он сейчас видимым.
  • 0

#5 Symphony

Symphony
  • Пользователь
  • 636 сообщений
  • Репутация: 54

Отправлено 07 Июнь 2012 - 02:59

аааа...точно, если сайт средней сложности, чего jq не цепляешь? Ускоришь же работу.
  • 0


#6 c0ns0l3

c0ns0l3
  • Пользователь
  • 264 сообщений
  • Репутация: 49

Отправлено 07 Июнь 2012 - 05:50

Avin, вообще погуглился.. на jQuery есть даже плагин оказывается на clickoutside... работает по аналогии
document.click.event.target!=this - так что я где то правильно начал рассуждать :)
  • 0

#7 Symphony

Symphony
  • Пользователь
  • 636 сообщений
  • Репутация: 54

Отправлено 07 Июнь 2012 - 09:15

Думаю, там и без плагинов jq можно обойтись


  • 0


#8 Avin

Avin
    Topic Starter
  • Пользователь
  • 82 сообщений
  • Репутация: 1

Отправлено 07 Июнь 2012 - 21:27

Спасибо за подробные ответы!!!!

попробую сделать, по результату отпишусь, не закрывайте пока тему :)
  • 0

#9 by-gari

by-gari
  • Пользователь
  • 12 сообщений
  • Репутация: 0

Отправлено 08 Июнь 2012 - 12:46

Если хочется изучить все досконально тебе сюда. Есть правда и чушь детская но посмотреть советую.
  • 0

#10 Symphony

Symphony
  • Пользователь
  • 636 сообщений
  • Репутация: 54

Отправлено 08 Июнь 2012 - 12:59

зашел на сайт который дал товарищ, что постов выше.

на этой странице http://goo.gl/DXpcS читаю комментарий.

Мне 66 лет. Высшее получил когда персоналок в помине не было. Друзей искать не привык, да и поздновато. Могли бы сразу написать, что для регистрации нужна компания. С приветом. Лев.

Что это было?
  • 0


robot

robot
  • Пользователь PRO
  • 2 652 сообщений
  • Репутация: 85


Оформление форума – IPBSkins.ru