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

HTML+CSS+JavaScript

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

 

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

вид форума:
Линейный форум Структурный форум

тема: click и blur
 
 автор: Дмитрий Смаль   (16.03.2014 в 10:28)   письмо автору
 
 

Здравствуйте
есть такая задача

div с текстом
при клике на диве в нем вместо текста появляется input где можно этот текст редактировать
при нажатии энтер в этом инпуте изменения сохраняются (инпут пропадает и вместо него появляется введенное значение)
при клике в другое место инпут тоже пропадает и вместо него появляется старое значение (изменения не сохраняются)

значения в инпуте вводятся только через подсказки как в поиске гугла
соответственно, если я набрал букву "а" у меня ниже вылез список
- арбуз
- апельсин
- ананас

мне нужно чтобы при клике например на слово "арбуз" подсказки пропадали и вместо инпута ставало слово арбуз и изменения сохранялись

проблема следующая
событие потери фокуса инпутом срабатывает перед событием клика по подсказе, и получается клик не срабатывает и изменения не сохраняются

я нашел выход - сделал через animate медленное пропадание подсказок и все работает как нужно

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

  Ответить  
 
 автор: confirm   (16.03.2014 в 10:50)   письмо автору
 
   для: Дмитрий Смаль   (16.03.2014 в 10:28)
 

Постройте это все по принципу выпадающего меню, обрабатывайте события у родителя, тогда все получится и без таймеров.

  Ответить  
 
 автор: Дмитрий Смаль   (16.03.2014 в 11:48)   письмо автору
 
   для: confirm   (16.03.2014 в 10:50)
 

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

структура нтмл кода такая
<div id="parent">
<div id="input"><input value="а" /></div>
<div id="menu">
<a href="#">апельсин</a>
<a href="#">ананас</a>
<a href="#">абрикос</a>
</div>
</div>

  Ответить  
 
 автор: confirm   (16.03.2014 в 14:02)   письмо автору
 
   для: Дмитрий Смаль   (16.03.2014 в 11:48)
 

Вы не то делаете. Выбросьте обработку фокуса вообще, замените это обработкой щелчка вне родителя, это ведь тоже самое будет. Все остальное это обработка родителем соответствующих событий дочерних элементов.

  Ответить  
Rambler's Top100
вверх

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