我正在使用Jquery工具叠加层,允许我加载外部页面 - http://flowplayer.org/tools/demos/overlay/external.html
我在IE7中遇到了一个问题(在IE8 / chrome等上运行正常。)
当我点击调用叠加层时,我会将其发送到实际的外部文件,而不是停留在页面上并有一个包含外部文件的叠加层。
这是jquery:
<script>
$(function() {
// if the function argument is given to overlay,
// it is assumed to be the onBeforeLoad event listener
$("a[rel]").overlay({
mask: {
color: '#000',
loadSpeed: 200,
opacity: 0.8,
},
onBeforeLoad: function() {
// grab wrapper element inside content
var wrap = this.getOverlay().find(".contentWrap");
// load the page specified in the trigger
wrap.load(this.getTrigger().attr("href"));
}
});
});
$('.close').live('click', function() {
$("#overlay").fadeOut('slow', function() {
});
$("#exposeMask").fadeOut('slow', function() {
});
});
</script>
这是HTML:
<!-- overlayed element -->
<div id="overlay" class="apple_overlay">
<!-- the external content is loaded inside this tag -->
<div class="contentWrap"></div>
</div>
<a href="Overlay_Login.php" rel="#overlay" class='button button_small_grey'>Login</a>
如果你还没有猜到我对jquery的了解并不是很好。所以,如果有人能够对这个问题有所了解,那就非常感激了。
答案 0 :(得分:3)
jQuery Tools在一年多的时间里没有更新(自jQuery 1.4.2以来),并且在IE9和Linux中存在很多问题。在Flowplayer论坛中报告的jQuery 1.6。开发商Tero在过去的一年中对它非常不满。他几乎没有花时间与他的社区互动,并且用他自己的话说,他最近谈到了他与其他项目和家庭的分心。他似乎也无法让其他人参与进来,以使这个社区项目或更自我维持。
虽然新版本即将推出(自2011年6月起?),但它不会向后兼容任何旧代码,因此无论如何都必须重写所有内容。谁能说你不会在一年内重新编写这段代码,当时Tero决定在更新的jQuery和浏览器发布时再进行一次长时间的中断。
就您的特定问题而言,我在下面的opacity: 0.8
行后面看到 "trailing comma of death" :
$("a[rel]").overlay({
mask: {
color: '#000',
loadSpeed: 200,
opacity: 0.8,
},
....
某些版本的Internet Explorer会在没有任何内容时阻塞逗号。
删除它,看看是否有帮助:
$("a[rel]").overlay({
mask: {
color: '#000',
loadSpeed: 200,
opacity: 0.8
},
....