IE6:在jQuery选项卡内部选择不呈现下拉列表

时间:2010-02-02 09:29:13

标签: jquery-ui internet-explorer-6 jquery-tabs

我在jQuery标签中有一个表单;我以一种简单的方式创建标签:

$("#tabs").tabs({selected: 1});

选定的索引1是放置表单的选项卡。问题是,在具有IE6的远程计算机上,当单击下拉箭头时,两者都选择仅显示一个小的空行而不是带有选项的列表:

Incorrect dropdown http://queen3.at.tut.by/DropDownIE6jQuery.PNG

页面源中有选项,所有内容实际上都适用于其他机器,其他浏览器以及IE6(尽管我使用的是IETester)。

如果我

,一切也都有效
  • 删除标签创建,即.tabs() - 选项确实出现并正常工作;或
  • 首先选择没有表单的选项卡(选项卡0),然后单击它 - 选项确实出现并起作用
    • 仅在点击时;标签创建后的程序化.tabs(“选择”,1)无效

有谁知道是什么原因引起的?它是IE6的bug还是我脚本的东西?

更新:嗯,感谢this,我发现它与我的CSS有关 - 如果我禁用Site.css它可以工作。我只考虑过脚本。还是要找出那是什么。

更新:好的,这是由这个CSS规则引起的:

body { font-size: 0.7em; }

如果我设置0.8或更高,它可以工作,但是对于0.7和更低的IE6,它会显示错误。

有人可以解释一下吗?是的它是IE6 - 根据定义很奇怪,但这个在我看来太奇怪了。

2 个答案:

答案 0 :(得分:0)

我也碰到了这个确切的问题,虽然我无法通过修改任何正文字体来修复它,但我确实设法使用{{略微修改的)“丑陋的黑客”方法解决它,如{{ 3}}链接,由CiscoIPPhone发布:

// Ugly hack to switch tabs in IE6, fixing select menu bug.
  if($.browser.msie && $.browser.version.substr(0, 1) <= 6) {
    $("#tabs").tabs({ selected: 1 }); 
    setTimeout(function() {
       $("#tabs").tabs("select", 0);
    }, 10);
  }

似乎超时是避免此错误的关键。

答案 1 :(得分:0)

我发现这种解决方法在某些计算机上修复了问题,但在其他计算机上却没有。

我的解决方案是在样式表中隐藏所有选择元素,然后在调用$( "#tabs" ).tabs()后我使用$('select').show()来显示它们。

为我修好了。