|
16.10.2013, 22:10
|
Новичок на форуме
|
|
Регистрация: 16.03.2013
Сообщений: 7
|
|
Отличить клик по нераскрытому select'у от клика по раскрытому
Всем доброго времени суток!
Требуется чтобы функция отрабатывала только при первом клике по селекту - когда он ещё свёрнут. При повторном клике, когда кликают уже по option'у - чтобы не отрабатывала. Если повесить функцию на клик - то отрабатывает в обоих случаях.
Подскажите как можно отличить эти две ситуации.
|
|
16.10.2013, 22:18
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,120
|
|
Сообщение от upvasil
|
Подскажите как можно отличить эти две ситуации.
|
а зачем?
|
|
16.10.2013, 22:28
|
Новичок на форуме
|
|
Регистрация: 16.03.2013
Сообщений: 7
|
|
Чтобы _gaq.push() отрабатывал только при клике на нераскрытый селект. А зачем так - без понятия, не мне это нужно
|
|
17.10.2013, 02:36
|
без статуса
|
|
Регистрация: 25.05.2012
Сообщений: 8,219
|
|
upvasil,
По любому клику на sеlect - менять class к примеру на аctive - затем на без аctive
тогда sеlect.аctive - развернутый sеlect
Проще и типичней отслеживаеть: - есть ли наведение на option - отличным от selected
Последний раз редактировалось Deff, 17.10.2013 в 14:52.
|
|
17.10.2013, 08:18
|
|
Профессор
|
|
Регистрация: 11.09.2010
Сообщений: 8,804
|
|
Скорее всего отличить невозможно. Так что забей.
__________________
В личку только с интересными предложениями
|
|
17.10.2013, 17:12
|
Новичок на форуме
|
|
Регистрация: 16.03.2013
Сообщений: 7
|
|
Deff, спасибо.
Почему-то mousedown срабатывает только при окрытии селекта, при клике уже на option не срабатывает.
|
|
17.10.2013, 17:20
|
|
Профессор
|
|
Регистрация: 11.09.2010
Сообщений: 8,804
|
|
Список может запросто закрыться и без второго клика по селекту и вообще без какого либо клика. Как вы собрались этот момент отловить?
__________________
В личку только с интересными предложениями
|
|
19.10.2013, 15:46
|
Новичок на форуме
|
|
Регистрация: 16.03.2013
Сообщений: 7
|
|
danik.js, например, с помощью onblur'а. В хроме это работает, но в ff - нет, при втором клике рядом с селектом событие не происходит почему-то...
|
|
19.10.2013, 16:20
|
|
Профессор
|
|
Регистрация: 11.09.2010
Сообщений: 8,804
|
|
Сообщение от upvasil
|
danik.js, например, с помощью onblur'а.
|
Селект может закрыться (без кликов) и при этом остаться в фокусе.
Думаю задача нерешаема. Если ошибки допустимы, то попытаться можно, но думаю это все напрасно будет.
__________________
В личку только с интересными предложениями
|
|
19.10.2013, 17:35
|
|
Профессор
|
|
Регистрация: 23.06.2011
Сообщений: 1,165
|
|
Сообщение от upvasil
|
При повторном клике, когда кликают уже по option'у - чтобы не отрабатывала. Если повесить функцию на клик - то отрабатывает в обоих случаях.
|
А запретить всплытие - не вариант?
<!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>
|
|
|
|