4

我在 jQuery 选项卡中有一个表单;我以一种简单的方式创建选项卡:

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

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

不正确的下拉 http://queen3.at.tut.by/DropDownIE6jQuery.PNG

这些选项在页面源代码中,并且所有内容实际上都可以在其他机器、其他浏览器以及 IE6 中运行(尽管我使用的是 IETester)。

如果我一切正常

  • 删除标签创建,即 .tabs() - 选项确实出现并起作用;或者
  • 首先选择没有表单的选项卡(选项卡 0),然后单击它 - 选项确实出现并起作用
    • 仅在单击时;创建选项卡后编程 .tabs("select", 1) 无济于事

有谁知道这会导致什么?是 IE6 错误还是我的脚本有什么问题?

更新:嗯,多亏了这个,我发现它与我的 CSS 相关——如果我禁用 Site.css,它就可以工作。我只考虑脚本。还是得弄清楚那是什么。

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

body { font-size: 0.7em; }

如果我设置为 0.8 或更高,它可以工作,但对于 0.7 和更少,IE6 会出现指示的错误。

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

4

2 回答 2

0

我也遇到了这个确切的问题,虽然我无法通过更改任何正文字体大小来解决它,但我确实设法使用dev.jqueryui.com中描述的(稍微修改的)“丑陋的黑客”方法来解决它/ticket/4734链接,由 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);
  }

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

于 2010-10-25T19:51:36.617 回答
0

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

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

那为我修好了。

于 2012-07-31T11:31:32.430 回答