开发者

Colorbox: Calling colorbox.close

开发者 https://www.devze.com 2023-02-20 00:42 出处:网络
I\'m working on a project that uses the velocity templating system, so the $ character is reserved, and cannot be used in javascript variable names.

I'm working on a project that uses the velocity templating system, so the $ character is reserved, and cannot be used in javascript variable names.

As such, I have to prefix jQuery variables and methods with jQuery, rather than $, e.g. jQuery(document).ready(function() {}); as opposed to $(document)ready(function(){});

This is ordinarily fine, but in thi开发者_运维百科s case I am using colorbox.

My code to call colorbox works fine, and looks like this:

jQuery(document).ready(function () {
    jQuery("#addUser").colorbox({
        href:"add",
        width:"500px",
        onClosed: function (message) {
            dataTable.refresh(jQuery("#ajaxResult").text(message));
        }
    })

    ...
})

I have a link inside the colorbox that I want to attach the colorbox.close method to, but when I click the link, I get this error:

Uncaught TypeError: Cannot call method 'close' of undefined

This is my code:

jQuery(document).ready(function () {
    jQuery("a").click(function() {
        jQuery.colorbox.close("User added succesfully");
    });

    ...
})

Can anybody tell me why I cannot close the colorbox?

By the way, the X that comes with colorbox still works to close it.


jQuery("#addUser").colorbox.close("User added succesfully");

Also, you should be able to use the $ syntax for jQuery if you choose by using external javascript files <script type="text/javascript" src="my_script_file.js" /> or escaping the $ like \$.


The easiest way to solve this for me was to store jQuery.colorbox as a variable in the global namespace. Yucky, but it works.

Here is what I put in the parent window:

jQuery(document).ready(function () {
    colorbox = jQuery.colorbox;

    ...
})

Then this is how I call it:

jQuery(document).ready(function () {
    jQuery("a").click(function() {
        colorbox.close("User added succesfully");
    });

    ...
})


This worked for me:

jQuery().colorbox.close();


can you try writing jQuery.fn.colorbox.close("User added succesfully"); instead of jQuery.colorbox.close("User added succesfully");

0

精彩评论

暂无评论...
验证码 换一张
取 消