Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 16.10.2013, 22:10
Новичок на форуме
Отправить личное сообщение для upvasil Посмотреть профиль Найти все сообщения от upvasil
 
Регистрация: 16.03.2013
Сообщений: 7

Отличить клик по нераскрытому select'у от клика по раскрытому
Всем доброго времени суток!

Требуется чтобы функция отрабатывала только при первом клике по селекту - когда он ещё свёрнут. При повторном клике, когда кликают уже по option'у - чтобы не отрабатывала. Если повесить функцию на клик - то отрабатывает в обоих случаях.
Подскажите как можно отличить эти две ситуации.
Ответить с цитированием
  #2 (permalink)  
Старый 16.10.2013, 22:18
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,120

Сообщение от upvasil
Подскажите как можно отличить эти две ситуации.
а зачем?
Ответить с цитированием
  #3 (permalink)  
Старый 16.10.2013, 22:28
Новичок на форуме
Отправить личное сообщение для upvasil Посмотреть профиль Найти все сообщения от upvasil
 
Регистрация: 16.03.2013
Сообщений: 7

Цитата:
а зачем?
Чтобы _gaq.push() отрабатывал только при клике на нераскрытый селект. А зачем так - без понятия, не мне это нужно
Ответить с цитированием
  #4 (permalink)  
Старый 17.10.2013, 02:36
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

upvasil,
По любому клику на sеlect - менять class к примеру на аctive - затем на без аctive
тогда sеlect.аctive - развернутый sеlect
Проще и типичней отслеживаеть: - есть ли наведение на option - отличным от selected

Последний раз редактировалось Deff, 17.10.2013 в 14:52.
Ответить с цитированием
  #5 (permalink)  
Старый 17.10.2013, 08:18
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Скорее всего отличить невозможно. Так что забей.
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #6 (permalink)  
Старый 17.10.2013, 17:12
Новичок на форуме
Отправить личное сообщение для upvasil Посмотреть профиль Найти все сообщения от upvasil
 
Регистрация: 16.03.2013
Сообщений: 7

Deff, спасибо.
Почему-то mousedown срабатывает только при окрытии селекта, при клике уже на option не срабатывает.
Ответить с цитированием
  #7 (permalink)  
Старый 17.10.2013, 17:20
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Список может запросто закрыться и без второго клика по селекту и вообще без какого либо клика. Как вы собрались этот момент отловить?
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #8 (permalink)  
Старый 19.10.2013, 15:46
Новичок на форуме
Отправить личное сообщение для upvasil Посмотреть профиль Найти все сообщения от upvasil
 
Регистрация: 16.03.2013
Сообщений: 7

danik.js, например, с помощью onblur'а. В хроме это работает, но в ff - нет, при втором клике рядом с селектом событие не происходит почему-то...
Ответить с цитированием
  #9 (permalink)  
Старый 19.10.2013, 16:20
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от upvasil
danik.js, например, с помощью onblur'а.
Селект может закрыться (без кликов) и при этом остаться в фокусе.
Думаю задача нерешаема. Если ошибки допустимы, то попытаться можно, но думаю это все напрасно будет.
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #10 (permalink)  
Старый 19.10.2013, 17:35
Аватар для BETEPAH
Профессор
Отправить личное сообщение для BETEPAH Посмотреть профиль Найти все сообщения от BETEPAH
 
Регистрация: 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>
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск