Jquery .show()无法在firefox中运行

我在firefox中的jquery show函数有问题。

情况:我在弹出窗口(fancybox)中加载了一个带有aspx页面的iframe。 在那个aspx页面中,我有一个带有onclick事件的按钮,它调用一个自定义函数,并在该函数中触发div上的.show()函数。 这个div有一个样式元素,其中包含:display:none;。

这适用于IE,safari,chrome。 当我单独加载aspx页面时,这甚至可以在firefox中运行。 它在fancybox-iframe弹出窗口中的firefox中不起作用。 我没有javascript错误。 甚至显示:none也不会从style属性中删除,但div不显示。

来自页面的html

..some elements
..content of the div

javascript代码:

 function dolinkedin(url, title, summary, source) { $(".smbutton").addClass("buttonDisabled"); $("#linklinkedin").removeClass("buttonDisabled"); $("#psharebutton").show(); parent.sizeFancybox(); } 

触发弹出窗口的按钮是一个锚点,它具有fancyboxiframe类。 Fancybox将自动生成用于显示弹出窗口的js代码。

我检查过这些主题:

  • Jquery隐藏/显示不在Firefox中工作?
  • Jquery隐藏/显示无法在Firefox / Chrome中运行
  • Jquery .show()和.hide()甚至.css({“display”:“none”}); 不在firefox工作?

我已经检查过我的HTML是否有效且确实如此。

任何的想法?

BHD

我有类似的问题,我的解决方案是做

 $("#psharebutton").css("display", "inline-block"); 

代替

 $("#psharebutton").show(); 

jquery“show”与将display style属性设置为“block”相同。 我发现我需要firefox和chrome的“内联块”(我不需要这个用于IE)。 我相信(但尚未确认)jquery足够聪明,可以知道前一个显示值是什么并使用它,但在我的情况下,我开始将显示设置为“none”,因此没有以前的值。

只需记下$(“#psharebutton”)。attr(’display’,”)或$(“#psharebutton”)。attr(’display’,’block’)。

 function dolinkedin(url, title, summary, source) { $(".smbutton").addClass("buttonDisabled"); $("#linklinkedin").removeClass("buttonDisabled"); $("#psharebutton").attr('display',''); parent.sizeFancybox(); } 

我有类似的问题。 我确实在我的CSS中设置了这个:

 body { display: none } 

并尝试在jQuery中更改此内容:

 $("body").show(); 

这在Firefox中不起作用。

我将HTML更改为

  

从CSS中删除部分我能够使用jQuery show(); 完美无瑕

似乎css规则的inheritance并不遵循Firefox中与IE / Chrome相同的例程。

它可能只是js错误的副作用。 总是值得点击F12,看看控制台中是否有任何js错误。 我有一个类似的问题,我无法弄清楚为什么.show()没有处理在Firefox中具有’display:none’样式的输入,结果发现我有一个形状错误的选择器,它缺少一个关闭]并抛出一个你没看到的错误,直到你打开Firebug。 当Firefox捕获坏选择器时,Chrome更宽容地显示了该按钮。