2011-04-11 56 views
1

我确信我不能成为第一个有这个问题的人,但我没有找到解决方案的运气。Shadowbox.js隐藏我的选择输入

我以最简单的形式使用Shadowbox;只是在做一个像弹出一个链接像

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

这工作得很好,但是有一个非常奇怪的副作用:当我点击链接,所有的选择输入(即下拉框)的形式对我的页面消失了。用Firebug窥探一下,发现CSS正在被修改为<select>标签属性visibility: hidden。当图像被解散时,输入重新出现。毫不奇怪,这种情况在不同的浏览器中一致。

由于输入全部重新出现,我可能会把事情保持原样。但是,如果(例如)图像无法加载,且脚本无法显示,则输入保持不可见状态。此外,它看起来很奇怪,而且它在驾驶着我。 :d

其他因素,可能会或可能不相关:

  • 我在过去做得很少有太极拳和很可能失去了一些东西令人尴尬的明显。
  • 我的页面及其表单由CakePHP生成。
  • 该页面使用jQuery,而Shadowbox正在使用jQuery适配器。
  • 消失输入不要class属性。它们具有由CakePHP生成的id属性,但这些名称对于我的应用程序非常具体,并且不太可能导致任何CSS冲突。
  • 据我所知,所有的的选择输入消失,和没有其他元素,输入或其他,页面上的影响根本。 (即使在输入相关联的标签不受影响。)
  • 版本:太极拳3.0.3,1.4.2 jQuery的,CakePHP的1.3

回答

3

这是一个半臭虫太极拳,最有可能的。选择标记被隐藏,因为在IE的某些版本中,它们使用Windows本地控件呈现,因此总是出现在具有z索引的任何其他元素“上方”。这显然是ShadowBox的问题,因此解决方案是在显示框时隐藏它们。 Shadowbox应该只为麻烦的浏览器做这件事,但我认为他们正在采取一种更加通用的方式来隐藏它们。

+1

哦,他们[列在这里明确](http://www.shadowbox-js.com/options.html)。看看“troubleElements”。如果您确信支持的浏览器不会有问题,您可以对其进行配置。 – Sajid 2011-04-11 22:08:09

+1

我应该知道我可以以某种方式责怪微软。 :) 谢谢。 – eaj 2011-04-12 13:55:36