Вот альтернатива, сделанная мной. Может помочь.
Codepen example
<div class="credit-mob-rate">
<fieldset>
<select id="timeframe-select" class="timeframe" tabindex="-1">
<option value="1" selected="">1 an</option>
<option value="2">2 ani</option>
<option value="3">3 ani</option>
<option value="4">4 ani</option>
<option value="5">5 ani</option>
</select>
<span class="ion-arrow-down-b"></span>
</fieldset>
</div>
И JS для различных событий. Там вы найдете css.
$("#timeframe-select").blur(function() {
console.log('blur');
$('.credit-mob-rate').removeClass('highlight-mobile');
$('.credit-mob-rate fieldset span').addClass("ion-arrow-down-b");
$('.credit-mob-rate fieldset span').removeClass("ion-arrow-up-b");
});
$("#timeframe-select").change(function() {
if ($('.credit-mob-rate fieldset span').hasClass('ion-arrow-up-b')) {
this.selectChanged = true;
}
console.log('change');
$('.credit-mob-rate fieldset span').addClass("ion-arrow-down-b");
$('.credit-mob-rate fieldset span').removeClass("ion-arrow-up-b");
});
$("#timeframe-select").click(function() {
console.log('click');
if (this.selectChanged) {
this.selectChanged = false;
return;
}
if ($('.credit-mob-rate fieldset span').hasClass('ion-arrow-up-b')) {
$('.credit-mob-rate fieldset span').addClass("ion-arrow-down-b");
$('.credit-mob-rate fieldset span').removeClass("ion-arrow-up-b");
} else {
$('.credit-mob-rate fieldset span').addClass("ion-arrow-up-b");
$('.credit-mob-rate fieldset span').removeClass("ion-arrow-down-b");
}
$('.credit-mob-rate').addClass('highlight-mobile');
});
$("#timeframe-select").on('keypress', function(e) {
if (e.charCode != 13 && e.charCode != 10) {
return;
}
console.log('keypress');
if (this.selectChanged) {
this.selectChanged = false;
$('.credit-mob-rate').addClass('highlight-mobile');
$('.credit-mob-rate fieldset span').addClass("ion-arrow-down-b");
$('.credit-mob-rate fieldset span').removeClass("ion-arrow-up-b");
} else {
$('.credit-mob-rate').addClass('highlight-mobile');
$('.credit-mob-rate fieldset span').addClass("ion-arrow-up-b");
$('.credit-mob-rate fieldset span').removeClass("ion-arrow-down-b");
}
});
У меня только один выпадающий список на весь сайт. стоит ли использовать решение ur только для одного раскрывающегося списка. и ур решение, как вы упомянули, не совместимы с IE 6, которые мне также нужны. но мне понравилось решение ур. –
может сделать ur selectzor.js более крошечным только для одного раскрывающегося списка. Мне не нужна функциональность Sample 2, которая находится в файле примера –
с открытым исходным кодом, поэтому вы можете просто вырвать часть кода. –