1

我确信我不能成为第一个遇到这个问题的人,但我没有找到解决方案的运气。

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

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

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

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

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

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

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

1 回答 1

3

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

于 2011-04-11T22:06:48.123 回答