Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 19.01.2012, 07:10
Аспирант
Отправить личное сообщение для Skyman Посмотреть профиль Найти все сообщения от Skyman
 
Регистрация: 05.05.2011
Сообщений: 32

Проблема с option click
Необходимо выполнить код при нажатии на option.

$('.block option').click(function() {
   alert('option нажат');
});

<select class="block">
   <option>test1</option>
   <option>test2</option>
   <option>test3</option>
</select>


Работает — IE 9, FF 9, Opera 11.6
Не работает — IE 6-8, Chrome, Safari

По стандартам, onclick применим для option, но WebKit и старые IE игнорируют это.
http://w3schools.com/tags/tag_option.asp

Как быть?
Ответить с цитированием
  #2 (permalink)  
Старый 19.01.2012, 12:55
Аспирант
Отправить личное сообщение для observer Посмотреть профиль Найти все сообщения от observer
 
Регистрация: 11.11.2011
Сообщений: 96

Не нужно устанавливать обработчик на "onclick", тем более на option, вместо select.

Специально для таких как вы --
http://jsfiddle.net/YfcBY/
Ответить с цитированием
  #3 (permalink)  
Старый 19.01.2012, 13:54
Аватар для Skipp
.
Отправить личное сообщение для Skipp Посмотреть профиль Найти все сообщения от Skipp
 
Регистрация: 30.03.2010
Сообщений: 1,813

$('.block').change(function() {
   alert('option нажат');
});
__________________
.
Ответить с цитированием
  #4 (permalink)  
Старый 19.01.2012, 13:59
Аспирант
Отправить личное сообщение для observer Посмотреть профиль Найти все сообщения от observer
 
Регистрация: 11.11.2011
Сообщений: 96

Сообщение от Skipp Посмотреть сообщение
$('.block').change(function() {
   alert('option нажат');
});
Чему вы учите? Не "нажат", а выбран (или отменен).
Ответить с цитированием
  #5 (permalink)  
Старый 19.01.2012, 15:25
Аватар для Skipp
.
Отправить личное сообщение для Skipp Посмотреть профиль Найти все сообщения от Skipp
 
Регистрация: 30.03.2010
Сообщений: 1,813

observer,
А что тут не правильно?
Вы свой пример-то смотрели, разве в вашем примере не тоже самое?

UPD: Взял код из вопроса, так что не городите чепуху попусту.
__________________
.

Последний раз редактировалось Skipp, 19.01.2012 в 15:34.
Ответить с цитированием
  #6 (permalink)  
Старый 19.01.2012, 16:40
Аспирант
Отправить личное сообщение для Skyman Посмотреть профиль Найти все сообщения от Skyman
 
Регистрация: 05.05.2011
Сообщений: 32

Skipp,
Спасибо, теперь работает везде
Ответить с цитированием
  #7 (permalink)  
Старый 19.01.2012, 16:51
Аспирант
Отправить личное сообщение для observer Посмотреть профиль Найти все сообщения от observer
 
Регистрация: 11.11.2011
Сообщений: 96

Сообщение от Skipp Посмотреть сообщение
observer,
А что тут не правильно?
Вы свой пример-то смотрели, разве в вашем примере не тоже самое?

UPD: Взял код из вопроса, так что не городите чепуху попусту.
Неправильно то, чему вы учите. Нажата может быть только кнопка на клавиатуре.

Не только смотрел, но и осмысленно написал.

Вот нет чтобы поправить человека, вы ему тот же "говнокод" в слегка измененном виде подаете.
Ответить с цитированием
  #8 (permalink)  
Старый 19.01.2012, 17:07
Аватар для Skipp
.
Отправить личное сообщение для Skipp Посмотреть профиль Найти все сообщения от Skipp
 
Регистрация: 30.03.2010
Сообщений: 1,813

observer,
Я знаю что onchange срабатывает при смене значения в поле select а не просто при клике на option, но объясните при каких обстоятельствах нужно бы было вешать событие onclick?
И да, в подтверждение, человек сказал спасибо, значит, то что надо.
И ещё интересно где тут "говнокод", обьясните, раз уж обвиняете?
__________________
.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сделать динамический option prowoke jQuery 1 18.08.2011 20:45
проблема с click alexrussia jQuery 1 26.11.2010 21:09
проблема с событием click. morfie jQuery 1 14.10.2010 04:33
live click выполняется несколько раз hara jQuery 9 09.06.2010 10:58
Проблема c функцией click() в MOZILLA JackM Общие вопросы Javascript 4 24.03.2009 16:51