Javascript中的奇怪的下拉菜单问题

时间:2013-01-04 19:04:35

标签: javascript jquery html-table

我对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);
}

我可以在我的td中看到dropdown菜单。但是,当我点击菜单时,我不得不按住鼠标 保持选项打开,否则选项菜单将关闭。即使我按住鼠标并选择一个选项, dropdown菜单值不会改变(它仍然显示选择菜单中的第一个选项)。我希望我能很好地解释我的问题。

任何人都可以帮我解决这个奇怪的问题吗?

1 个答案:

答案 0 :(得分:0)

IIRC,有一些奇怪的跨浏览器问题,附加选项作为DOM元素。添加选项的首选方法是:

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

修改

Do not to use appendChild on selectdo not use innerHTML on select elements。 TL; DR:HTMLSelectElement很特殊,在IE中有怪癖