Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Проблема с option click (https://javascript.ru/forum/jquery/24926-problema-s-option-click.html)

Skyman 19.01.2012 07:10

Проблема с 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

Как быть?

observer 19.01.2012 12:55

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

Специально для таких как вы --
http://jsfiddle.net/YfcBY/

Skipp 19.01.2012 13:54

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

observer 19.01.2012 13:59

Цитата:

Сообщение от Skipp (Сообщение 151420)
$('.block').change(function() {
   alert('option нажат');
});

Чему вы учите? Не "нажат", а выбран (или отменен).

Skipp 19.01.2012 15:25

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

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

Skyman 19.01.2012 16:40

Skipp,
Спасибо, теперь работает везде :)

observer 19.01.2012 16:51

Цитата:

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

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

Неправильно то, чему вы учите. Нажата может быть только кнопка на клавиатуре.

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

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

Skipp 19.01.2012 17:07

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


Часовой пояс GMT +3, время: 13:04.