未捕获的TypeError:对象[object Object]没有方法'overlay'

时间:2011-12-17 18:53:39

标签: javascript

为什么我的overlay jquery代码会出现此错误?

这是代码:

jQuery(document).ready(function($) {

    // if the function argument is given to overlay,
    // it is assumed to be the onBeforeLoad event listener
    $("a[rel]").overlay({

        mask: 'darkred',
        effect: 'apple',

        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"));
        }

    });
});

此代码是这样的叠加层:http://flowplayer.org/tools/demos/overlay/external.html

HALP?

PS。抱歉我的英语不好。

4 个答案:

答案 0 :(得分:4)

“无法找到叠加:nofollow”是由于使用非特定的css选择器来查找要将叠加层附加到的链接。

正确包含javascript是对最初问题的正确答案...我来到这个页面基于覆盖:评论中的nofollow问题....因为这是我发现的第一件事并且没有找到我想在这里评论一个答案,因为我发现它是由css选择器发现...的其他用途引起的,并且没有nofollow覆盖...

假设'overlay'是div的id,如下所示:

<!-- overlayed element -->
<div class="apple_overlay" id="overlay">
   < !-- the external content is loaded inside this tag -- >
   <div class="contentWrap"></div>

</div>

你应该做的事情如下:

 $("a[rel=#overlay]").overlay(

而不是:

 $("a[rel]").overlay(

答案 1 :(得分:2)

在jQuery将其视为对象的一部分之前,您需要加载overlay插件;见下文。
注意:插件必须在jQuery脚本之后

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script>
<script src="http://cdn.jquerytools.org/1.2.6/all/jquery.tools.min.js"></script>

答案 2 :(得分:1)

遇到同样的问题,发现了一个非常奇怪的解决方案。 我只是以这种方式将jquery.tools 包含在 jquery.ui之前:

 <script src='js/jquery-1.4.2.min.js' type='text/javascript'></script>
 <script src='js/jquery.tools.min.js' type='text/javascript'></script>
 <script src='js/jquery-ui-1.7.2.custom.min.js' type='text/javascript'></script>

这就是全部。不知道为什么它现在有效,但它确实起作用。

答案 3 :(得分:0)

您是否在页面中添加了覆盖脚本src?