humanbeing
humanbeing

Reputation: 121

Uncaught TypeError: Object [object Object] has no method 'overlay'

Why do I get this error from my overlay jquery code?

This is the code:

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

    });
});

This code is the overlay like this: http://flowplayer.org/tools/demos/overlay/external.html

Halp?

ps. Sorry for my bad english.

Upvotes: 1

Views: 10180

Answers (4)

chrisboy
chrisboy

Reputation: 41

"Could not find Overlay: nofollow" is caused by using a non-specific css selector to find the links you want to attach your overlay to.

Including the javascript properly was the correct answer to the initial question... I came to this page based on the Overlay: nofollow issue in a comment.... since this is the first thing I found and didn't find an answer I wanted to comment here since I found it is caused by the css selector finding other uses of .. and there isn't a nofollow overlay...

assuming 'overlay' is the id of your div as in the following:

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

</div>

you should be doing something like:

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

instead of:

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

Upvotes: 4

Hexodus
Hexodus

Reputation: 11

Got the same problem and found a really strange solution. I just included jquery.tools before jquery.ui in this way:

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

That's all. No idea why it works now but it does the job.

Upvotes: 1

EKet
EKet

Reputation: 7314

Did you include the overlay script src in your page?

Upvotes: 0

vol7ron
vol7ron

Reputation: 42109

You need to load the overlay plugin before jQuery will see it as part of the object; see below.
Note: the plugin must come after the jQuery script

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

Upvotes: 2

Related Questions