HTML:
<select class="shortenedSelect">
<option value="0" disabled>Please select an item</option>
<option value="1">Item text goes in here but it is way too long to fit inside a select option that has a fixed width adding more</option>
</select>
CSS:
.shortenedSelect {
max-width: 350px;
}
Javascriptを:
// Shorten select option text if it stretches beyond max-width of select element
$.each($('.shortenedSelect option'), function(key, optionElement) {
var curText = $(optionElement).text();
$(this).attr('title', curText);
// Tip: parseInt('350px', 10) removes the 'px' by forcing parseInt to use a base ten numbering system.
var lengthToShortenTo = Math.round(parseInt($(this).parent('select').css('max-width'), 10)/7.3);
if (curText.length > lengthToShortenTo) {
$(this).text('... ' + curText.substring((curText.length - lengthToShortenTo), curText.length));
}
});
// Show full name in tooltip after choosing an option
$('.shortenedSelect').change(function() {
$(this).attr('title', ($(this).find('option:eq('+$(this).get(0).selectedIndex +')').attr('title')));
});
作品完璧。私も同じ問題がありました。このJSFiddleを確認してくださいhttp://jsfiddle.net/jNWS6/426/
これは私がすでに試みたものですが、もともとはChromeでのみテストしていました。これはInternet Explorer、Firefox、Safari、Operaで動作します。だから私はこの特定のページ(サイトの管理部分の一部である)のプライマリユーザーがGoogle Chromeを使用していないので、これが質問に答えると言うでしょう。 Google Chromeでこれを過ぎ去らせる既知の方法があれば、それは良いことです(また、すべてのブラウザが同じようにCSSを処理するといいかもしれませんが、これは現在ではもっと標準化されていると思いました)。 –
また、すばらしい返信をいただきありがとうございます! –
select要素の設定幅を設定するのは良い考えではありません。http://stackoverflow.com/questions/1700807/how-to-show-extended-option-in-select-list – anddoutoi