Очередность выполнения 2х событий
День добрый. Как можно побороть ситуацию - есть инпут, на нем висит обработчик 'change', есть div - на нем висит 'click'. При клике на div, первым срабатывает onchange на инпуте, а только потом клик на div. Можно ли как-то поменять их местами?
|
zilker,
Выложите HTML код данного куска страницы |
<div class="select autocomplete" wrapper="Streets" id="Streets"> <div class="selecthead"> <div class="selecttext"> <div class="selectvalue"> <input placeholder="выбрать улицу" type="text" /> </div> <div class="lighting"></div> </div> <input type="hidden" value="" name="streets" id="f-streets"/> <div class="arrow"></div> </div> <div class="selectlist"> <div class="option">Ленина</div> </div> </div> Клик на диве с классом 'option', 'onchange' на видимом инпуте. |
Цитата:
<div class="select autocomplete" wrapper="Streets" id="Streets"> <div class="selecthead"> <div class="selecttext"> <div class="selectvalue"> <input placeholder="выбрать улицу" type="text" onchange="Al_2(this)"/> </div> <div class="lighting"></div> </div> <input type="hidden" value="" name="streets" id="f-streets"/> <div class="arrow"></div> </div> <div class="selectlist"><br /> <div class="option" onclick="Al_1(this)">Ленина</div> </div> </div> <script type="text/javascript"> function Al_1(a){ alert("onclick") } function Al_2(a){ alert("onchange") } </script> Выложите Ваш скрипт обработки |
Можно поинтересоваться, в каком браузере Вы работаете?
Запускаю скрипт из Вашего сообщения - Опера и мозилла последних версий - сначала onchange, потом onclick Хром второй алерт с кликом вообще не выводит. |
Цитата:
Мозилла 17.01 |
Странно, те же самые версии. Очередность моих действий:
1.Вводим что-то в текстовое поле. 2.Нажимаем на текст "Ленина" 3.Выскакивает алерт "onchange" 4.Следующий алерт "onclick" Что я делаю не так... |
Цитата:
В начальной задаче было написано первый клик на div, про первоначальный ввод в инпут речи не велось Собственно опишите желаемую последовательность и Варианты поведения при ином порядке действий |
Да, наверно я неверно выразился. Что мне необходимо:
1.Вводим что-то в инпут 2.Нажимаем на див 3.Срабатывает обработчик onclick на диве 4.Срабатывает обработчик onchange на инпуте |
<div class="select autocomplete" wrapper="Streets" id="Streets"> <div class="selecthead"> <div class="selecttext"> <div class="selectvalue"> <input placeholder="выбрать улицу" type="text" onchange="Al_2(this)"/> </div> <div class="lighting"></div> </div> <input type="hidden" value="" name="streets" id="f-streets"/> <div class="arrow"></div> </div> <div class="selectlist"><br /> <div class="option" onclick="Al_1(this)">Ленина</div> </div> </div> <script type="text/javascript"> var onch=false; function Al_2(a){ onch=a.value } function Al_1(a){ alert("onclick"); if(onch) {alert(onch)} onch=false; } </script> |
Часовой пояс GMT +3, время: 23:19. |