2011-12-17 72 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(
相關問題