Jquery工具覆盖在IE7中不起作用

时间:2011-09-19 15:50:15

标签: jquery overlay jquery-tools internet-explorer-7

我正在使用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的了解并不是很好。所以,如果有人能够对这个问题有所了解,那就非常感激了。

1 个答案:

答案 0 :(得分:3)

恕我直言,根据经验,我会远离jQuery工具,特别是如果你没有jQuery的良好工作知识。由于需要大量的标记和奇怪的方法,它不像你可能遇到的任何其他jQuery插件。如果你真的想了解更多如何正确使用jQuery,请坚持使用更可靠,通用和标准方法的插件。

jQuery Tools在一年多的时间里没有更新(自jQuery 1.4.2以来),并且在IE9和Linux中存在很多问题。在Flowplayer论坛中报告的jQuery 1.6。开发商Tero在过去的一年中对它非常不满。他几乎没有花时间与他的社区互动,并且用他自己的话说,他最近谈到了他与其他项目和家庭的分心。他似乎也无法让其他人参与进来,以使这个社区项目或更自我维持。

虽然新版本即将推出(自2011年6月起?),但它不会向后兼容任何旧代码,因此无论如何都必须重写所有内容。谁能说你不会在一年内重新编写这段代码,当时Tero决定在更新的jQuery和浏览器发布时再进行一次长时间的中断。

jQuery Tools Alternatives?

就您的特定问题而言,我在下面的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    
        },
....