Цитата:
Могу показать лишь код. |
Цитата:
|
function srOnDocumentClick(e) { var target = (window.event) ? window.event.srcElement : e.target; if(document.srExpandedList) { if((target.srIndex || target.srIndex === 0) && document.srExpandedList == target.parentNode ) document.srExpandedList.srCollapse(target); else document.srExpandedList.srCollapse(); switch ($('select.kuk').val()) { case '1': $('ul.srBlur').css({background:"url('css/jaz/selectbg.png') "} ); $('ul.srFocus').css({background:"url('css/jaz/selectbg.png') "} ); break; case '2': $('ul.srFocus').css({background:"url('css/jaz/sbgfr.png')"} ); $('ul.srBlur').css({background:"url('css/jaz/sbgfr.png')"} ); break; } } else { if(target.srIndex || target.srIndex === 0) target.parentNode.srExpand(); } } function srReplaceSelects() { var s = $('select.kuk'); var len = s.length for (var i = 0; i < len; i++) rsSelectReplace(s[i]); srAddEvent(document, 'click', srOnDocumentClick); } srAddEvent(window, 'load', srReplaceSelects); вот часть кода с обработчиком click |
Скрипт, которым Вы пользуетесь действительно ограниченный. Удивительно, что автор не предусмотрел элементарные вещи связанные с событиями.. Я поступил весьма прозаично в аналогичном случае:
в самом скрипте дописал две строки //устанавливаем для выбранного элемента //класс srSelectedLi ul.childNodes[li.srIndex].className = 'srSelectedLi'; if(window.srSelectCallBack)srSelectCallBack(ul.srSelect, li.srValue); // добавленная строка //в каждом элементе списка //храним индекс соответствующего //элемента option li.srIndex = i; li.srValue=options[i].value; // добавленная строка Ну и при необходимости уже в собственном коде определяем обработчик и получаем нужный функционал: function srSelectCallBack(oSelect,xValue){ console.log($(oSelect).val()); } // srSelectCallBack |
Решение RobertoCavali работает, но почему-то срабатывает со 2-го раза.
Сразу при загрузке страницы и при выборе любого элемента списка берёт значение всё-ранво из первого элемента option. Т.е. приходится выбирать 2 раза чтобы выбрать то что нужно. Почему так происходит? |
Часовой пояс GMT +3, время: 04:34. |