IE8 исправлена ошибка выпадающего списка для нескольких выпадающих списков

#javascript #jquery #css #internet-explorer-8 #wicket

#javascript #jquery #css #internet-explorer-8 #калитка

Вопрос:

Как мы все знаем, IE8 будет иметь выпадающий список фиксированной ширины, даже если текстовое содержимое больше фактической ширины выпадающего списка.Для этого у нас также есть исправление.У меня это работает для одного выпадающего списка. В этом случае это работает для калитки: поле выбора id =»Область». Но для остальных блоков (блоков элементов и кода) он не работает.Фактически здесь содержимое в поле элемента и кода будет загружено только после выбора элементов в области (есть вызов ajax). Я привел пример кода здесь.

 <div class="fieldsColumn" wicket:id="Container">
    <div class="Container">
        <select class="ie8DropdownFix" wicket:id="Area" style="width:12em"></select>--->look here</div>
    <div class="fieldContainer">
        <select class="ie8DropdownFix" wicket:id="Item" style="width:12em"></select>---->look here</div>
    <div class="fieldContainer">
        <select class="ie8DropdownFix" wicket:id="Code" style="width:12em"></select>---->look here</div>
</div>
  

Я использовал следующее исправление, которое я получил после поиска здесь

 $(".ie8DropdownFix").each(function () {
    el = $(this);

    el.data("origWidth", el.outerWidth()); // IE 8 can haz padding
}).click(function () {

    $(this).css("width", "auto");
})
    .bind("blur change", function () {
    el = $(this);
    alert($(this).val()   "in blur");
    el.css("width", el.data("origWidth"));
});
  

Пожалуйста, помогите в устранении проблемы

Комментарии:

1. Не могли бы вы разобраться с этим, пожалуйста?

2. @NicolasHenrard Привет, спасибо, что позаботились. У меня есть три выпадающих списка (область, элемент, код). Если мы выберем выпадающий список одного элемента, то будет загружено другое поле. Но здесь, если длина текста выпадающего списка больше ширины выпадающего списка, это приведет к удалению текста. Для этого я использовал приведенное выше исправление. Он работает для выпадающего списка «Область», но не для повторного создания. Пожалуйста, дайте мне знать, если вам нужна дополнительная информация.

3. Я понимаю проблему, но можете ли вы разместить свой код в Интернете с помощью jsfiddle.net ? Будет легче воспроизвести ошибку.

Ответ №1:

Это сработало после добавления цепочки событий один за другим: Следующее — это код, который помогает какому-то органу.

 $(document).ready(function(){   

var el;

$(".ie8DropdownFix").each(function() {
el = $(this);
el.data("origWidth", el.outerWidth()) ;// IE 8 can haz padding
}).click(function(){

$(this).css("width", "auto");
})
.bind("blur change ", function(){
el = $(this);
el.css("width", el.data("origWidth"));
var el2;
$(".ie8DropdownFix").each(function(){
el2 = $(this);      
el2.data("origWidth", el2.outerWidth());  
}).click(function(){
 $(this).css("width", "auto");
}).bind("blur change ", function(){
el2= $(this);               
el2.css("width", el2.data("origWidth"));
var el3;
$(".ie8DropdownFix").each(function(){
el3 = $(this);      
el3.data("origWidth", el3.outerWidth());  
}).click(function(){
$(this).css("width", "auto");
}).bind("blur change", function(){
el3= $(this);    
el3.css("width", el3.data("origWidth"));       
});      });    });    });