Colorbox: вызов colorbox.close - PullRequest
       14

Colorbox: вызов colorbox.close

4 голосов
/ 25 марта 2011

Я работаю над проектом, в котором используется система шаблонов скорости, поэтому символ $ зарезервирован и не может использоваться в именах переменных javascript.

Таким образом, я должен префикс jQuery переменных и методов с jQuery, а не $, например. jQuery (документ) .ready (function () {}); в отличие от $ (document) ready (function () {});

Обычно это нормально, но в этом случае я использую colorbox.

Мой код для вызова colorbox работает нормально и выглядит так:

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

    ...
})

У меня есть ссылка внутри colorbox, к которой я хочу прикрепить метод colorbox.close, но когда я нажимаю на ссылку, я получаю эту ошибку:

Uncaught TypeError: Невозможно вызвать метод 'close' из неопределенного

Это мой код:

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

    ...
})

Кто-нибудь может мне сказать, почему я не могу закрыть коробку?

Кстати, X, который идет с colorbox, все еще работает, чтобы закрыть его.

Ответы [ 4 ]

6 голосов
/ 25 марта 2011
jQuery("#addUser").colorbox.close("User added succesfully");

Кроме того, вы сможете использовать синтаксис $ для jQuery, если вы выберете с использованием внешних файлов javascript <script type="text/javascript" src="my_script_file.js" /> или , экранируя $\$.

2 голосов
/ 25 марта 2011

Самый простой способ решить эту проблему для меня - сохранить jQuery.colorbox в качестве переменной в глобальном пространстве имен.Тьфу, но это работает.

Вот что я вставил в родительское окно:

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

    ...
})

Тогда я так и называю:

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

    ...
})
1 голос
/ 23 октября 2013

Это сработало для меня:

jQuery().colorbox.close();
0 голосов
/ 25 марта 2011

вы можете попробовать написать jQuery.fn.colorbox.close («Пользователь успешно добавлен»); вместо jQuery.colorbox.close («Пользователь успешно добавлен»);

...