Как заставить работать .change для <select> где-то, кроме оперы?
По событию .chage я подгружаю и вывожу координаты выбранного человека... Когда из списка выбирают мышкой, то все хорошо, но если начинают листать с помощью клавиатуры, то во всех браузерах, кроме Opera ничего не происходит. Вот страничка, чтоб глянуть нерабочее событие.
Смотреть пункт МЕНЕДЖЕР. Пролистывание стрелочками неработает. Помогите, пожалуйста... |
Этот скрипт удаляет изменения на стрелках и в Опере. По-моему не оч. клевое решение. Никто не знает более красивого решения?
|
Не очень красиво т.к. на скорую руку писал, но функционал вроде бы этот нужен:
<script type="text/javascript"> window.onload = function() { var menu = document.getElementById("menu"); var select = menu.getElementsByTagName('select'); var div = menu.getElementsByTagName('div')[0]; for(i=0; i<select.length; i++){ select[i].onkeyup = function(){ div.innerHTML = this.options[this.selectedIndex].value; }; select[i].onchange = function(){ div.innerHTML = this.options[this.selectedIndex].value; }; } }; </script> <div id="menu"> <form action="" method="get"> <select> <option value="">Выберите менеджера</option> <option value="Телефон: +01<br />Email: manager@1.dn.ua">Юля</option> <option value="Телефон: +02<br />Email: manager@2.dn.ua">Вася</option> <option value="Телефон: +03<br />Email: manager@3.dn.ua">Дима</option> <option value="Телефон: +04<br />Email: manager@4.dn.ua">Петя</option> </select> </form> <div></div> </div> |
Реализовал все гораздо проще:
$(".manager").keyup(function(e){ if (e.keyCode>=37 && e.keyCode<=40) { // мой обработчик для .change() } }); Но за идею спасибо! |
Часовой пояс GMT +3, время: 02:21. |