Получение индекса текущего option`а в multiple select

Vano_big

Новичок
Получение индекса текущего option`а в multiple select

Хотелось бы при отрабатывании события onchange получить index, value, text что угодно текущего option`а, т.е. того на котором кликнули.
Причем кликнули это не только выделили, но и сняли выделение.
selectedIndex конечно же не годится, возвращает индекс первого опшиона имеющего статус selected.
Кто как это решает? Поделитесь опытом.
 
1. onclick на option.
2. Вот пример с onchange, за кривизну кода прошу ногами не бить, в JS я не смыслю.
PHP:
<select onchange='select_onchange()' id='myselect' multiple=1 size=3>
<option>First</option><option>Second</option><option>Third</option>
</select><tag id='mytext'></tag>
<script>
options = new Array();
select = document.getElementById('myselect')
function get_options()
{
 var options = new Array();
 for(i=0;i<select.options.length;i++) {options[i] = select.options[i].selected;}
 return options;
}
options = get_options();
function select_onchange()
{
 var newoptions = get_options();
 var diff = new Array;
 for(i=j=0;i<newoptions.length;i++) {if (options[i] != newoptions[i]) {diff[j] = new Array(i,newoptions[i]); j++}}
 options = newoptions;
 text = document.getElementById('mytext')
 text.innerHTML = '';
 if (diff.length > 0) {text.innerHTML += '<ul>Изменившиеся элементы:<br>';}
 for(i=0;i<diff.length;i++)
 {
  if (diff[i][1] == true) {s = 'включился';}
  else {s = 'выключился';}
  text.innerHTML += '<li>Элемент #'+diff[i][0]+' ('+select[diff[i][0]].value+') '+s;
 }
 if (diff.length > 0) {text.innerHTML += '</ul>';}
 return diff;
}
select_onchange();
</script>
 
Спасибо за помощь. Собственно про сохранение предыдущего состояния я тоже думал, вернее там именно и сделал.
Я все же думал что есть какой-то иной способ. Перерыл MSDN, ничего не нашел.
Честно говоря, со стороны разработчиков стандарта это свинство. Вещь то нужная.
 
На самом деле устраивает конечно же, но для текущей реализации не подходит. Свои особенности имеются, нет возможности навесить на option событие. Select формируется автоматически, средствами некоего класса, а дописать данный функционал в нем немного проблематично, не укладывается в общую концепцию.

-~{}~ 14.02.06 12:49:

Кстати, доверился совету называется. Решил проверить с onclick. Если че, option не поддерживает onclick.
 
Opera 9 - это не показатель. IE действительно не поддерживает. Вообще жалко что нельзя напрямую получить индекс кликнутого элемента, кода пришлось бы писать раза в 3 меньше.
 
Сверху