2011-12-17 137 views
1

为什么我从覆盖的jquery代码中得到这个错误?Uncaught TypeError:Object [object Object] has no method'overlay'

这是代码:

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。对不起,我的英语不好。

+0

这是不够的代码来证明你正确地这样做。根据你给出的链接,有多个步骤来设置覆盖。我们不知道你是否正确设置,你能否给我们更多的页面,以及如何设置它? – EKet 2011-12-17 19:24:52

+0

这工作完美的HTML,但是当我尝试将此插件包含到WordPress主题不起作用。 – humanbeing 2011-12-17 19:53:32

回答

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> 
+0

我必须在'jquery.js'之前加载'overlay.js'插件? – humanbeing 2011-12-17 19:07:47

+0

我使用wordpress ..和jQuery脚本是在<?php wp_enqueue_script('jquery'); ?>我在jQuery脚本之后加载了overlay插件(上面的代码)。 – humanbeing 2011-12-17 19:14:03

+0

humanbeing,不,你需要在jquery插件之后加载overlay插件。你得到的错误是因为浏览器没有看到'overlay'作为你的jquery对象的一部分(你试图在jquery之前加载插件,或者根本没有加载插件) - 插件是在第二个脚本标记(jquery.tools.min.js)中。 – vol7ron 2011-12-17 19:18:19

0

是否包含在你的页面覆盖脚本SRC后?

+0

yes .. as humanbeing 2011-12-17 19:16:07

+0

请在您的问题下方看到我的评论。 – EKet 2011-12-17 19:25:23

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> 

这就是全部。不知道为什么它现在可以工作,但它完成了这项工作。

4

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

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

假设'覆盖'是您的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(
相关问题