3

メニューに関して奇妙な問題がありdropdownます。

私は持っている

company.prototype.buildTable=function(){
  var thisObj=this;

  tableTD = createElement('td');
  tableTD.onclick=function(){thisObj.edit(this);}
  this.table.appendChild(tableTD);  //append td to the table

  // more td

}

company.prototype.edit = function(thisRow) {
  $thisRow=$(thisRow);
  var menu=document.createElement('select');
      menu.className='menu';

   //employees is an array containing employee info

   for(var i=0; i<employees.length; i++){

           var option=document.createElement('option');
               option.className='option';
               option.innerHTML=employees[i].name;
               option.value=employees[i].email;

            menu.appendChild(option);
         }

   $thisRow.append(selectMenu);
}

dropdowntdにメニューが表示されます。ただし、メニューをクリックすると、マウスを押したままにしてオプションを開いたままにしておく必要がありました。そうしないと、オプション メニューが閉じてしまいます。マウスを押したまま 1 つのオプションを選択しても、dropdownメニューの値は変わりません (選択メニューの最初のオプションが引き続き表示されます)。私の問題をうまく説明できれば幸いです。

誰でもこの奇妙な問題で私を助けることができますか?

4

1 に答える 1

0

IIRC、DOM要素としてオプションを追加することでいくつかの奇妙なクロスブラウザの問題があります。オプションを追加するための推奨される方法は、次のとおりです。

menu.options[i] = new Option(employees[i].name, employees[i].email);

編集

selectでappendChildを使用したり、select要素でinnerHTMLを使用したりしないでください。TL; DR:HTMLSelectElement特別で、IEに癖があります

于 2013-01-04T19:57:42.383 に答える