Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: как закрыть открытый блок кликнув в любом месте окна браузера?

Сообщения:  [1-10]   [11-12] 

 
 автор: ride   (25.09.2010 в 18:24)   письмо автору
 
   для: АЯ   (25.09.2010 в 09:39)
 

>JQuery - это наркотик.
>А никак не лекарство.
это как понимать надо?

  Ответить  
 
 автор: АЯ   (25.09.2010 в 09:39)   письмо автору
 
   для: web777   (24.09.2010 в 22:46)
 

<html>
<head>
<script>
function myFunc_1 ()
{
var blc = document.getElementById ('block');
blc.style.display = '';
document.body.onmousedown = myFunc_2;
}
function myFunc_2 (evt)
{
var blc = document.getElementById ('block'), e = window.event || evt, o = e.target || e.srcElement;
if (blc == o) return;
document.body.onmousedown = null;
blc.style.display = 'none';
}
</script>
</head>
<body>
<span style="cursor: pointer; text-decoration: underline" onclick="myFunc_1 ()">Show</span>
<div id="block" style="width: 100px; height: 100px; background-color: red; display: none"></div>
</body>
</html>

JQuery - это наркотик.
А никак не лекарство.

  Ответить  
 
 автор: sim5   (24.09.2010 в 23:49)   письмо автору
 
   для: web777   (24.09.2010 в 23:45)
 

Значит тратить время на написание:
if($(block).is(":hidden")) { 
         $(block).fadeIn("fast"); 
         this.focus(); 
         //$(block).focus(); 
      } else { 
         $(block).fadeOut("fast"); 
      } 
        $(this).blur(function() { 
            $(block).fadeOut("fast"); 
        });
вы нашли, а потратить максимум минут 10-20 для того чтобы узнать как лучше написать, некогда? Открывайте, читайте, там и ребенку за пару часов разобраться можно.

  Ответить  
 
 автор: web777   (24.09.2010 в 23:45)   письмо автору
 
   для: sim5   (24.09.2010 в 23:32)
 

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

  Ответить  
 
 автор: sim5   (24.09.2010 в 23:32)   письмо автору
 
   для: web777   (24.09.2010 в 23:24)
 

Решетка, это атрибут тюремной камеры, и для чего вы его воткнули в якорь, я в курсе. Вот только использование якоря ради клика на странице, с добавлением ему решетки и return false, это либо от лени, либо от нехватки фантазии. ;-)

>чтобы не писать для каждого нового блока отдельный код, а описав одну функцию, и ей передавай только id блока проще было бы

Вот как раз при использовании jQuery, этого можно вообще не делать. Почитайте API ее, узнаете как.

  Ответить  
 
 автор: web777   (24.09.2010 в 23:24)   письмо автору
 
   для: sim5   (24.09.2010 в 23:05)
 

return false; вписывал когда не было в href решотки например href="" иначе была перезагрузка страници при клике на ссылку, сейчас сделал так href="#" и убрал return false;

понимаю может чтото не верно сделал, но пытался сделать проще, чтобы не писать для каждого нового блока отдельный код, а описав одну функцию, и ей передавай только id блока проще было бы, сейчас работает всё нормально, за исключением если кликнуть на ссылку и отвести курсор кликнув на любом месте окна блок не исчезает, исчезает если только повторно кликнуть по ссылке. Почемуто фокус не реагирует.

Смысл в том сделать чтото подобное как допустим на яндексе на главной странице где идёт перечисление разделов и не вошедшие находятся если кликнуть поссылке "ещё" то появиться блок(вкладка) где перечисляются остальные разделы, и если кликнуть на пустом месте то этот блок закроется, именно так и пытаюсь сделать

  Ответить  
 
 автор: sim5   (24.09.2010 в 23:05)   письмо автору
 
   для: web777   (24.09.2010 в 23:02)
 

И что, по клику тела страницы нельзя узнать стиль вашего блока, и если..., то... ?
И вообще, используя jQuiery, так писать - onclick="toggleActionsBlock('#blockActions');... это расточительность, коли она не оправдана. Да и учтите - кликнуть можно абсолютно по любому элементу на странице, что не хватает фантазии и ради клика используем якорь с return false?

  Ответить  
 
 автор: web777   (24.09.2010 в 23:02)   письмо автору
 
   для: sim5   (24.09.2010 в 22:59)
 

подождите, так ведь у меня весь код находится в отдельной функции toggleActionsBlock() которая вызывается по ссылке

<a href="#" onclick="toggleActionsBlock('#blockActions');return false;">Действия</a>

в качестве аргумента передаётся id блока к примеру #blockActions

  Ответить  
 
 автор: sim5   (24.09.2010 в 22:59)   письмо автору
 
   для: web777   (24.09.2010 в 22:46)
 

$(document.body).click(function() {
  //ваши действия
});

  Ответить  
 
 автор: web777   (24.09.2010 в 22:46)   письмо автору
 
   для: АЯ   (24.09.2010 в 22:32)
 

можно пример, просто в скрипте мало разбираюсь, пишу пока по мануалу

  Ответить  

Сообщения:  [1-10]   [11-12] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования