Jquery select change(click) same value / Select не изменился, действия
Метки: jquery select change, select same
Сегодня потребовалось реализовать довольно интересную и одновременно хитрую штуку: В списке select перечислены некоторые значения – названия страниц. При выборе необходимо осуществить переход. Сложность в том, что переход нужно осуществить в любом случае, так же и в мобильных браузерах, где select зачастую перехватывается.
Решений было найдено множество, в одном случае – вешалась функция $(“select”).click() и считалось количество нажатий – однако на мобильнике такой подход не работает.
В итоге, хотя совместимость прям со всеми не была проверена, пришел в голову довольно странный подход:
1. при клике выбираем несуществующее значение select
2. а стандартная функция при изменении уже написана
В общем, получился вот такой простой и незамысловатый код:
$("select").click(function(){ $(this).val(-1); }).change(function(){ window.location.href = $(this).val(); });
Да, если бы перехода не было сразу, можно было бы запоминать предыдущий выбор и возвращать его, однако это не требуется.
И на мобильниках “выбранная” по умолчанию option также видна во всплывающем окне, если её выбрать – то переход также будет осуществлен.