Jquery select change(click) same value / Select не изменился, действия

7 Апрель 2016

Метки: 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 также видна во всплывающем окне, если её выбрать – то переход также будет осуществлен.


 


© 2006 - 2024, Александр Сергеев