【问题标题】:Shadowbox.js hides my select inputsShadowbox.js 隐藏了我的选择输入
【发布时间】:2011-04-11 19:06:03
【问题描述】:

我确定我不是第一个遇到此问题的人,但我没有找到解决方案。

我以最简单的形式使用Shadowbox;只是做一个带有链接的图像弹出窗口

Click <a href="myimage.png" rel="shadowbox">here</a> to view the image.

这很好用,但有一个非常奇怪的副作用:当我单击链接时,我页面上表单的所有选择输入(即下拉框)都消失了。稍微窥探一下 Firebug 就会发现 CSS 正在被修改以赋予&lt;select&gt; 标签属性visibility: hidden。当图像被关闭时,输入会重新出现。

毫不奇怪,这在浏览器中始终如一地发生。

由于输入全部重新出现,我可能会保持原样。但是,如果(例如)无法加载图像,并且脚本无法显示它,则输入将保持不可见。此外,它看起来很奇怪,它让我发疯。 :D

其他可能相关或不相关的因素:

  • 过去我在 Shadowbox 方面做得很少,很可能遗漏了一些明显令人尴尬的事情。
  • 我的页面及其表单是由 CakePHP 生成的。
  • 页面使用 jQuery,Shadowbox 使用 jQuery 适配器。
  • 消失的输入具有class 属性。它们确实具有由 CakePHP 生成的 id 属性,但这些名称非常特定于我的应用程序,不太可能导致任何 CSS 冲突。
  • 据我所知,所有 选择输入都消失了,并且页面上的其他 元素、输入或其他元素完全不受影响。 (甚至与输入相关的标签也不受影响。)
  • 版本:Shadowbox 3.0.3、jQuery 1.4.2、CakePHP 1.3

【问题讨论】:

    标签: javascript forms shadowbox


    【解决方案1】:

    这很可能是 shadowbox 中的一个半错误。选择标签被隐藏是因为在某些版本的 IE 中,它们是使用 Windows 原生控件呈现的,因此总是出现在任何其他具有 z-index 的元素的“上方”。这显然是 ShadowBox 的问题,所以解决方法是在显示盒子时隐藏它们。 Shadowbox 显然应该只对麻烦的浏览器执行此操作,但我认为他们采取了一种更通用的方法来始终隐藏它们。

    【讨论】:

    • 哦,他们是listed here explicity。看看“troubleElements”。如果您确信您支持的浏览器不会出现问题,您可以配置它们。
    • 我应该知道我可以以某种方式责怪微软。 :) 谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-14
    • 2013-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多