Как получить значение переменной из плагина или отправить значение из плагина? - PullRequest
0 голосов
/ 17 ноября 2011

Как я могу получить значение переменной из плагина или отправить значение из плагина?

Например, это мой плагин, который получает информацию о пользователе через ajax и сохраняет информацию о пользователе в переменной

(function($){

   $.fn.extend({ 

        get_authentication: function(options) {

            var defaults = {
                file:           'authentication_json.php',
                location:       'cms/'
            }

            var options = $.extend(defaults, options);

            var o = options;
            var object = $(this); // now the object is the selected element such as #popup

            $.get(http_root + rp_cms+ o.file, function(data){

                if(data) var user_id = data.user_id;

                // Redirect if the date returns as 'expired'.
                if(data && data.error == 'expired') window.location = http_root + o.location;
                //alert("Data Loaded: " + data);

            },"json");
        }
    });

 })(jQuery);

Я вызываю этот плагин, когда нажимаю на определенные ссылки,

$('.get-user').click(function(){

   $.fn.get_authentication();
   alert(user_id);
});

Я получаю такую ​​ошибку.

Есть идеи?

Ответы [ 2 ]

1 голос
/ 17 ноября 2011

Я добавил обратный вызов в ваш плагин.Вот пример + модифицированный код

(function($) {
    $.fn.extend({
        get_authentication: function(options) {
            var defaults = {
                file: 'authentication_json.php',
                location: 'cms/',
                callback: function(user_id) {}
            }
            var options = $.extend(defaults, options);

            var o = options;
            var object = $(this); // now the object is the selected element such as #popup
            $.get(http_root + rp_cms + o.file, function(data) {
                if (data)
                    options.callback(data.user_id);

                // Redirect if the date returns as 'expired'.
                if (data && data.error == 'expired') window.location = http_root + o.location;
                    alert("Data Loaded: " + data);
            }, "json");
        }
    });
})(jQuery);

$(function() {
    $.fn.get_authentication({
        callback: function(user_id) {
            alert(user_id);
        }
    });
});
0 голосов
/ 17 ноября 2011

EDIT:

Как сказал Мануэль, воспользуйтесь обратным вызовом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...