這是我做的另一種選擇。可能有幫助。
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");
}
});
我只在整個網站上有一個下拉菜單。是否值得使用我們的解決方案只有一個下拉菜單。和你的解決方案,因爲你提到的不兼容IE 6,我也需要。但我喜歡你的解決方案。 – 2010-01-26 20:18:54
可以讓你的selectzor.js更小,只需一個下拉菜單。我不需要示例2的功能,這是示例文件 – 2010-01-26 20:23:59
的開源代碼,因此您可以將部分代碼撕掉。 – 2010-01-26 20:37:16