我在 Firefox 中使用 jquery show 函数时遇到问题。
情况: 我已经在弹出窗口(fancybox)中加载了带有 aspx 页面的 iframe。在该 aspx 页面中,我有一个带有 onclick 事件的按钮,该事件调用自定义函数,并在该函数中触发 div 上的 .show() 函数。该 div 有一个样式元素,其中包含:display:none;。
这适用于 IE、Safari、Chrome。当我独立加载 aspx 页面时,这甚至可以在 Firefox 中工作。它在 Firefox 中的 fancybox-iframe 弹出窗口中不起作用。我没有收到任何 JavaScript 错误。即使 display:none 也从 style 属性中删除,但 div 没有显示。
页面中的 html
<div class="popupWrapper">
..some elements
<div id="psharebutton" style="display:none;">
..content of the div
</div>
</div>
JavaScript 代码:
function dolinkedin(url, title, summary, source) {
$(".smbutton").addClass("buttonDisabled");
$("#linklinkedin").removeClass("buttonDisabled");
$("#psharebutton").show();
parent.sizeFancybox();
}
触发弹出窗口的按钮是一个 anchor ,它具有 fancyboxiframe 类。 Fancybox会自动生成用于显示弹出窗口的js代码。
我已经检查了这些主题:
- Jquery Hide/Show not working in Firefox Only?
- Jquery hide/show not working in Firefox/Chrome
- Jquery .show() and .hide() or even .css({"display":"none"}); not working in firefox?
我已经检查了我的 html 是否有效,确实如此。
有什么想法吗?
BHD
最佳答案
我遇到了类似的问题,我的解决方案是这样做
$("#psharebutton").css("display", "inline-block");
而不是
$("#psharebutton").show();
jquery“show”与将显示样式属性设置为“block”相同。我发现我需要 firefox 和 chrome 的“inline-block”(IE 不需要这个)。我相信(但尚未证实)jquery 足够聪明,可以知道以前的显示值是什么并使用它,但就我而言,我一开始将显示设置为“无”,因此没有以前的值。
关于Jquery .show() 在 Firefox 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7267634/