Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 10.07.2012, 18:59
Новичок на форуме
Отправить личное сообщение для ender1982 Посмотреть профиль Найти все сообщения от ender1982
 
Регистрация: 10.07.2012
Сообщений: 2

Как правильно убирать всплывающее окошко?
Здравствуйте!
Вот такая беда: окошко (div.obj_list) выпадает по событию onfocus="ulist_up()" в инпуте (input[name=view]) и убирается по событию onblur="hide_list();"

дело всё в том, что в таком случае не срабатывает событие onclick внутри этого окна...

я пробовал сделать вот так, но не сильно помогло:

j("#"+divid+">div.obj_list").mouseenter(function(){
    j("#"+divid+">input[name=view]").blur(function(){});
});
j("#"+divid+">div.obj_list").mouseleave(function(){
    j("#"+divid+">input[name=view]").blur(function (){hide_list();});
});

Последний раз редактировалось ender1982, 10.07.2012 в 19:02.
Ответить с цитированием
  #2 (permalink)  
Старый 10.07.2012, 19:42
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

ender1982,
Выложите минимально необходимый HTML код к скрипту
Ответить с цитированием
  #3 (permalink)  
Старый 10.07.2012, 19:55
Аватар для vadim5june
Студент
Отправить личное сообщение для vadim5june Посмотреть профиль Найти все сообщения от vadim5june
 
Регистрация: 30.04.2012
Сообщений: 1,113

Есть логическая неувязка-если кликните на окошко то событие onblur произойдет
и потом Вы это окошко уже не закроете
поэтому лучше закрывать его по событию mousedown на window(body) а в окне написать event.stopPropogation()

Последний раз редактировалось vadim5june, 11.07.2012 в 10:09.
Ответить с цитированием
  #4 (permalink)  
Старый 11.07.2012, 03:50
Аватар для cmd
cmd cmd вне форума
Профессор
Отправить личное сообщение для cmd Посмотреть профиль Найти все сообщения от cmd
 
Регистрация: 19.03.2011
Сообщений: 177

Вы можете использовать setTimeout, чтобы окно не исчезало мгновенно. По событию hover или mouseover на всплывающем окне Вы можете дропать старый setTimeout и запускать новый отсчет. Как-то так... Может завтра утром проснусь и код напишу, но лучше на это не рассчитывать
__________________
Cogito, ergo sum

Последний раз редактировалось cmd, 11.07.2012 в 04:06. Причина: Вначале я написал глупость т.к. неправильно понял вопрос
Ответить с цитированием
  #5 (permalink)  
Старый 11.07.2012, 16:01
Новичок на форуме
Отправить личное сообщение для ender1982 Посмотреть профиль Найти все сообщения от ender1982
 
Регистрация: 10.07.2012
Сообщений: 2

если кому интересно нашёл вот такой интересный простой способ решения: так называемое модальное окно)

.mask{ position: absolute; height: 100%; width:100%; top: 0; left:0; z-index:50;}
.pop-up-window{ z-index:150;}


function ulist_up(){
       j("body").append("<div onmousedown='hide_list();' class='mask'>/div>");
}

function hide_list(){
       j('.mask').hide();
}
Ответить с цитированием
  #6 (permalink)  
Старый 12.07.2012, 09:18
Кандидат Javascript-наук
Отправить личное сообщение для jeysmook Посмотреть профиль Найти все сообщения от jeysmook
 
Регистрация: 24.04.2012
Сообщений: 118

ender1982,
лучше заместо hide() использовать remove()
function ulist_up(){
       $("body").append("<div onmousedown='hide_list();' class='mask'></div>");
}

function hide_list(){
       $('.mask').remove();
}
Ответить с цитированием
Ответ


Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как правильно прицепить обработку события slowklg Events/DOM/Window 6 15.03.2012 16:20
cookies как правильно сохранить Berowz Общие вопросы Javascript 2 13.03.2012 22:34
Как правильно подавить событие при подключении своего обработчика? Маэстро Firefox/Mozilla 2 03.09.2011 11:46
Как правильно очистить maxlength в input? Маэстро Events/DOM/Window 10 22.06.2011 18:14
Как правильно оформить Send() Алекс97 AJAX и COMET 20 30.10.2008 19:19