Цитата:
Могу показать лишь код. |
Цитата:
|
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, время: 19:37. |