Показать сообщение отдельно
  #10 (permalink)  
Старый 18.07.2014, 15:10
Интересующийся
Отправить личное сообщение для SpiritAbsolute Посмотреть профиль Найти все сообщения от SpiritAbsolute
 
Регистрация: 11.12.2013
Сообщений: 19

В итоге в общем получилось так.
Стояла задача, отслеживать изменения select , который стилизован с помощью jquery ui.
Получалось так, jquery ui генерировал свою структуру span, ul, li - не трогая <select>(просто скрывая его через display:none
В результате, не возможно было отследить изменение select`a и получить его значение, для дальнейших действий.
/*
#tg - ID <select>, в котором нужно отследить изменения
#tg-menu - ID <ul>, который Jquery UI присваивает после формирования ul списка с значениями <select>
*/
// Отслеживаем клик по элементу(LI), который формирует Jquery UI после клика на span, которым он заменяет select
$('body').on('click', '.ui-menu-item', function() {
	// Определяем позицию выбранного элемента(LI), по классу 'ui-state-focus', с помощью index()
	var position=$('#tg-menu > li').index($('li.ui-state-focus'));
	// Получив позицию, узнаем в какой позиции находится нужный, для изменения, <option> и делаем его выбранным.
	for (var i=1; i<$('#tg > option').size(); i++){
		if(i==position){
			$('#tg > option:eq('+position+')').prop("selected", "selected");
		}
	}
	// Получаем значение выбранного <select>
	var tg = $('#tg').val();
});
Ответить с цитированием