На форуме InfoScript.ru вы можете: задать вопросы по php, вопросы по javascript, вопросы по системе uCoz, заказать графику для вашего сайта и просто пообщаться с хорошими людьми
  • Страница 1 из 1
  • 1
Модератор форума: frenkmalcov  
Как узнать, виден объект или нет?
7soft Дата: Пятница, 08.10.2010, 13:50 | Сообщение # 1
Offline
Супер чел
Script Creator
Сообщений:420
Награды:15
Замечания:0%
Репутация
231
Мне нужно, чтобы при клике вне меню, само меню сворачивалось.
Открывается меню через $('#menu').toggle();
Сейчас есть такой скрипт:
Code

<script>
  $(document).click(function(e){
  if ($(e.target).parents().filter('#menu:visible').length != 1) {
  if (УСЛОВИЕ) {$('#menu').toggle();}
  }});
</script>

Что поставить вместо "УСЛОВИЕ", чтобы меню сворачивалось только если оно открыто?




7soft [B] контакте
 
antisept Дата: Воскресенье, 10.10.2010, 09:46 | Сообщение # 2
Offline
BrainStorming
Администраторы
Сообщений:2847
Награды:51
Репутация
987
7soft, я в jq, так же как и в js - новичек. Поэтому, хз. Знаю, что если нужно выполнить какую-нибудь функцию на js, при клике в любом месте страницы, то в body нужно добавить это:

Quote
onClick="antisept()"

Красное - это функция, кот. будет выполняться.

А в head это вставить:

Code
<script language="JavaScript">
function antisept()
{
alert("Привет alex!");
}
</script>


Если я долго не выполняю обещаний, напомните мне в ЛС. Скорее всего, я просто забыл.

Не оказываю помощь через ЛС. Все вопросы - на форум или в комментарии.
 
7soft Дата: Вторник, 12.10.2010, 16:21 | Сообщение # 3
Offline
Супер чел
Script Creator
Сообщений:420
Награды:15
Замечания:0%
Репутация
231
А если открывается через document.getElementById('start').style.display = 'block' / document.getElementById('start').style.display == 'none' ???
Вроде бы нужно делать так:
Code

<script>
       $(document).click(function(e){
           if ($(e.target).parents().filter('#start:visible').length != 1) {          // клик вне объекта
               if(document.getElementById('start').style.display == 'block') {document.getElementById('start').style.display == 'none';}            
// проверка, открыт ли блок, и его скрытие
           }
       });    
</script>

Но через alert проверил, что когда нажимаешь кнопку открытия меню, скрипт считает это за клик вне меню и закрывает, не дав ему открыться...
Случайно не знаешь, что можно сделать? help
Пример работы (нажми на "пуск")




7soft [B] контакте


Сообщение отредактировал 7soft - Вторник, 12.10.2010, 16:32
 
antisept Дата: Среда, 13.10.2010, 14:51 | Сообщение # 4
Offline
BrainStorming
Администраторы
Сообщений:2847
Награды:51
Репутация
987
Может так, хотя я хз:

Code
<script>$('body').click(function(){
if($('#start').css("display")=="block") {$('#start').css("display")=="none";}
});</script>


Если я долго не выполняю обещаний, напомните мне в ЛС. Скорее всего, я просто забыл.

Не оказываю помощь через ЛС. Все вопросы - на форум или в комментарии.
 
7soft Дата: Суббота, 16.10.2010, 13:43 | Сообщение # 5
Offline
Супер чел
Script Creator
Сообщений:420
Награды:15
Замечания:0%
Репутация
231
Сложными комбинациями settimeout и cleartimeout добился того, что хотел:

Code

<script type="text/javascript">
// Скрипт от 7soft.org.ru
  function openbox(id) {
  if(document.getElementById(id).style.display == 'block') {
  document.getElementById(id).style.display = 'none';
  }
  else {
  document.getElementById(id).style.display = 'block';
  }
  };
     $(document).click(function(e){
         if ($(e.target).parents().filter('#start:visible').length != 1) {
             if(document.getElementById('start').style.display == 'block') {timeoutId = setTimeout(startcheck, 1000);}
         }
     });
     function off() {clearTimeout(timeoutId);}
     function startcheck() {
         if(document.getElementById('start').style.display == 'block') {document.getElementById('start').style.display = 'none';};};
// Скрипт от 7soft.org.ru
</script>

<div id="start"> МЕНЮ, ИЛИ ЧТО-НИБУДЬ ЕЩЁ </div>
<a onclick="openbox('start'); setTimeout(off, 500); return false;">КНОПКА</a>




7soft [B] контакте
 
  • Страница 1 из 1
  • 1
Поиск: