Jquery.show()在firefox中不工作

Jquery.show()在firefox中不工作,jquery,firefox,show,Jquery,Firefox,Show,我对firefox中的jquery显示函数有问题 情况: 我在弹出窗口(fancybox)中加载了带有aspx页面的iframe。在该aspx页面中,我有一个带有onclick事件的按钮,该事件调用一个自定义函数,并在该函数中激发div上的.show()函数。该div有一个样式元素,其中包含:display:none 这适用于IE、safari和chrome。这甚至可以在firefox中独立加载aspx页面时使用。在fancybox iframe弹出窗口中,它在firefox中不起作用。我没有得

我对firefox中的jquery显示函数有问题

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

这适用于IE、safari和chrome。这甚至可以在firefox中独立加载aspx页面时使用。在fancybox iframe弹出窗口中,它在firefox中不起作用。我没有得到javascript错误。即使是display:none也会从style属性中删除,但div不会显示

从页面中删除html

<div class="popupWrapper">
  ..some elements
  <div id="psharebutton" style="display:none;"> 
   ..content of the div
  </div>
</div>
触发弹出窗口的按钮是一个锚点,它具有fancyboxiframe类。Fancybox将自动生成显示弹出窗口的js代码

我检查了以下主题:

我已经检查了我的html是否有效,是否正确

有什么想法吗

BHD

只需写下美元(“#psharebutton”).attr('display','')或美元(“#psharebutton”).attr('display','block')


我有一个类似的问题,我的解决办法是

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

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

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

我也有类似的问题。我确实在css中设置了这一点:

body { display: none }
并尝试在jQuery中更改此设置:

$("body").show();
这在Firefox中不起作用

在我将HTML更改为

<body style="display: none">

从CSS中删除该部分后,我可以使用jQuery show();完美的


在Firefox中,css规则的继承似乎不像IE/Chrome那样遵循相同的程序。

这可能只是js错误的副作用。点击F12并查看控制台中是否存在任何js错误总是值得的。我遇到了一个类似的问题,我不明白为什么.show()不能处理Firefox中具有“display:none”样式的输入,结果发现我有一个格式错误的选择器,缺少一个结束符]并抛出了一个你看不到的错误,直到你打开Firebug。Chrome更宽容地显示了该按钮,而Firefox发现了错误的选择器。

您是否尝试过$(“#psharebutton”).toggle()?我不再需要代码te复制:(很抱歉,你的答案和DJ的答案可能是解决方案,不幸的是,我无法再复制它了,但在看到类似的行为后,我确信确实如此。我对你的两个答案都投了赞成票。请看我在kirk上的评论:)谢谢你的回答,这可能对其他人有帮助:)
$("body").show();
<body style="display: none">