Shadowbox.js隐藏了我的选择输入

时间:2011-04-11 19:06:04

标签: javascript forms shadowbox

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

我以最简单的形式使用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属性。它们具有CakePHP生成的id属性,但这些名称非常特定于我的应用程序,并且不太可能导致任何CSS冲突。
  • 据我所知,所有的选择输入都会消失,并且页面上的没有其他元素,输入或其他内容会受到影响。 (即使与输入相关的标签也不受影响。)
  • 版本:Shadowbox 3.0.3,jQuery 1.4.2,CakePHP 1.3

1 个答案:

答案 0 :(得分:3)

这很可能是影子盒中的一个半bug。选择标记被隐藏,因为在某些版本的IE中,它们使用Windows本机控件进行渲染,因此始终显示在具有z-index的任何其他元素的“上方”。这显然是ShadowBox的一个问题,因此解决方案是在显示框时隐藏它们。 Shadowbox应该只为麻烦的浏览器做这件事,但我认为他们采用了更通用的方法来保护它们。