Отличить клик по нераскрытому select'у от клика по раскрытому
Всем доброго времени суток!
Требуется чтобы функция отрабатывала только при первом клике по селекту - когда он ещё свёрнут. При повторном клике, когда кликают уже по option'у - чтобы не отрабатывала. Если повесить функцию на клик - то отрабатывает в обоих случаях. Подскажите как можно отличить эти две ситуации. |
Цитата:
|
Цитата:
|
upvasil,
По любому клику на sеlect - менять class к примеру на аctive - затем на без аctive тогда sеlect.аctive - развернутый sеlect Проще и типичней отслеживаеть: - есть ли наведение на option - отличным от selected |
Скорее всего отличить невозможно. Так что забей.
|
Deff, спасибо.
Почему-то mousedown срабатывает только при окрытии селекта, при клике уже на option не срабатывает. |
Список может запросто закрыться и без второго клика по селекту и вообще без какого либо клика. Как вы собрались этот момент отловить?
|
danik.js, например, с помощью onblur'а. В хроме это работает, но в ff - нет, при втором клике рядом с селектом событие не происходит почему-то...
|
Цитата:
Думаю задача нерешаема. Если ошибки допустимы, то попытаться можно, но думаю это все напрасно будет. |
Цитата:
<!DOCTYPE HTML><html><head></head><body>
<div id="where">куда кликали: </div>
<select id="select">
<option id="option1">odin</option>
<option id="option2">dva</option>
</select>
<script>
document.getElementById('select').onclick = function() {
document.getElementById('where').innerHTML += 'select, ';
}
document.getElementById('option1').onclick = function(event) {
document.getElementById('where').innerHTML += 'option1, ';
event.stopPropagation ? event.stopPropagation() : event.cancelBubble=true;
}
document.getElementById('option2').onclick = function(event) {
document.getElementById('where').innerHTML += 'option2, ';
}
</script>
</body></html>
|
| Часовой пояс GMT +3, время: 19:52. |