Я пытаюсь настроить довольно простой (imo) графический интерфейс Javascript и сталкиваюсь с проблемами. Я использую JQuery. Вот что я хочу сделать:
Рядом с текстом есть несколько квадратов, например:
[ ] Text next to square
[ ] Text next to square 2
[ ] Text next to square 3
[ ] Text next to square 4
Когда вы нажимаете на один из квадратов, появляется абсолютно позиционированный плавающий элемент div. Этот плавающий div имеет несколько параметров интерфейса.
В этот момент, если пользователь щелкнет в любом месте за пределами плавающего div, div должен исчезнуть. Если пользователь щелкнет другое поле, исходный div должен исчезнуть, а новый должен появиться.
Я могу заставить правильно отображаться плавающие дивы, но у меня возникают проблемы с их сокрытием. В данный момент я прикрепляю обработчик щелчка к $(document)
в функции, которая показывает плавающий div. Упрощенный код ниже:
show(jqueryObj)
{
jqueryObj.show();
$(document).one("click", function () { jqueryObj.hide(); });
}
(Шоу связано с облизыванием одного из [ ]
полей в другом месте)
Проблема, с которой я сталкиваюсь, заключается в том, что событие click кажется всплывающим, и function () { jqueryObj.hide(); }
выполняется немедленно. Я пытался вернуть false
в show()
, но это, похоже, не решило проблему. Что мне здесь делать?