1

jqueryを使用してselectにlazy loadオプションを追加しようとしています。このコードはIE9以外のすべてのブラウザで動作します。 (IE7、IE8、FF、クロームすべての作業)フォーカスを選択するオプションを追加するIE9

function LazyLoadOptionsIntoSelect($select, options) { 
     //get current option 
     var selectedOptionVal = $select.val(); 
     var selectedOptionDisplay = $select.find("option:selected").text(); 

     //repopulate options 
     if (selectedOptionDisplay === "--Select a File--" 
       || selectedOptionDisplay === "----------") { 
      $select.html(""); 

      $("<option>").val("").text("--Select a File--") 
         .appendTo($select); 
     } 
     else { 
      $select.html($("option:selected", $select)); 
      $("<option>").val("").text("----------") 
         .appendTo($select); 
     } 
     $.each(options, function() { 
      var item = this; 
      $("<option>").attr("name", function() { return item.display; }) 
        .val(item.value) 
        .text(item.display) 
        .appendTo($select); 
     }); 

     //select previous val 
     $select.val(selectedOptionVal); 
    } 

    $(document).on("focus", ".html-select", function() { 
     LazyLoadOptionsIntoSelect($(this), HtmlOptions); 
    }); 
    $(document).on("focus", ".txt-select", function() { 
     LazyLoadOptionsIntoSelect($(this), TxtOptions); 
    }); 
    $(document).on("focus", ".xml-select", function() { 
     LazyLoadOptionsIntoSelect($(this), XmlOptions); 
    }); 

私は時間のためにこれを解決しようとしてきたが、何も作業していない。..任意の溶液または私はIE9のオプションをロードする別の方法を記述する必要があります?

optionsは、valueとdisplayを含むオブジェクトの配列です。

これは単純な使用例では機能しますが、これはMicrosoftが処理するには多すぎるようです。 < _ <

+0

IEの開発コンソールでエラーが発生しましたか? – j08691

+0

私は行きたいと思っています。下矢印をクリックすると、オプションが追加される前にドロップダウンが表示されているのと同じように、クリアされます。私がHTMLを見ると、すべてのオプションが表示されていることがわかります。ちょうどie9はそれらを表示したくありません。 –

+0

jquery 1.7を使用していますが、1.7.1にアップグレードしようとしましたが、同じ問題が発生しました。 –

答えて

1

時間がたつにつれて、要素を再描画したかどうかを確認するためにCSSを変更しようとしました。それはしました。

$(document).on("focus", ".html-select", function() { 
     LazyLoadOptionsIntoSelect($(this), HtmlOptions); 
     if ($("body").hasClass("ie9")) 
     { 
      $(this).width($(this).width()); 
     } 
    }); 
関連する問題