Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Combobox, как правильно скрыть? (https://javascript.ru/forum/dom-window/22936-combobox-kak-pravilno-skryt.html)

igrok 06.11.2011 11:24

Combobox, как правильно скрыть?
 
Приветствую всех,
извиняюсь возможно глупый вопрос :)
Делаю свой выпадающий список на дивах, все нормально работает, но вот не могу понять по какому событию его нужно правильно скрывать, ведь делать вот так это некрасиво:

$("*").live("click", function(){
  $(".WCombobox").each(function(){
    var obj=getObjectById($(this).attr("id"));
    obj.hide();
  });
});


Всем спасибо

ksa 06.11.2011 11:47

Цитата:

Сообщение от igrok
не могу понять по какому событию его нужно правильно скрывать

Посмотри как это делает обычный комбобокс...

igrok 06.11.2011 12:08

Если честно не понял ответа

ksa 06.11.2011 12:57

Цитата:

Сообщение от igrok
Если честно не понял ответа

Посмотри как работает стандартный элемент.

<select>
   <option></option>
   <option>Item 1</option>
   <option>Item 2</option>
   <option>Item 3</option>
</select>

igrok 06.11.2011 13:07

наверное я как то нечетко вопрос задал - я не могу понять на что вешать событие на закрытие, если к примеру пользователь нажал на выпадающий список, и он появился, а потом юзер куда нить еще щелкнул...не по списку....,неужели нужно делать так $("*").live("click"...

Спасибо

ksa 06.11.2011 13:15

Цитата:

Сообщение от igrok
неужели нужно делать так $("*").live("click"...

Ну не live() это точно... :D

Начни с полного тестового примера... Или его должен сделать кто-то другой? :)

igrok 06.11.2011 13:20

здесь исходный код списка, он очень простой, в конце, в комментариях пример использования

http://ge.tt/9WacNc9?c

igrok 06.11.2011 13:22

там я вместо $("*") написал $("body")...что собственно разницы почти не несет....но вот именно этот кусок кода мне очень ненравится, думаю что это не эффективно :(

ksa 06.11.2011 13:36

Цитата:

Сообщение от igrok
здесь исходный код списка

Пример нужно делать минимальный и выкладывать его тут. Причем делать его выполняемым...

igrok 06.11.2011 13:53

список является частью фреймворка...там минимум четыре файла завязаны :(

ksa 06.11.2011 14:53

Если ты настолько крут, таки сможешь придумать разумный компромис... ;)

Как вариант могу дать ссылку, там есть два варианта "закрытия окна"
http://testpr.hop.ru/home/home.html
См. на шапку в самом верху:
1. Если клацнуть на треугольничек рядом с "Москва"
2. Если клацнуть на "Вход в личный кабинет"

Первый вроде то, что тебе нужно... Второй более простой...

igrok 06.11.2011 16:17

спасибо,
там использовалось
$(document.body).bind('click'...
но в моём случае это не пойдет к сожалению, т.к. объекты страницы полностью генерируются скриптом :(

в любом случае спасибо ;)

ksa 06.11.2011 16:51

Цитата:

Сообщение от igrok
там использовалось
$(document.body).bind('click'...

И не только... :)
Т.к. каждый bind() добавляет обработчик к уже существующим. Т.о. нужно не забывать удалять "свой", когда он уже не нужен...
Цитата:

Сообщение от igrok
но в моём случае это не пойдет к сожалению, т.к. объекты страницы полностью генерируются скриптом

Не вижу никакой связи... :)


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