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

Maa*_*eft 11 firefox jquery show

我在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

<div class="popupWrapper">
  ..some elements
  <div id="psharebutton" style="display:none;"> 
   ..content of the div
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)

javascript代码:

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

        parent.sizeFancybox();
    }
Run Code Online (Sandbox Code Playgroud)

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

我检查过这些主题:

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

任何的想法?

BHD

Kir*_*ohn 8

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

$("#psharebutton").css("display", "inline-block");
Run Code Online (Sandbox Code Playgroud)

代替

$("#psharebutton").show();
Run Code Online (Sandbox Code Playgroud)

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