Как добавить метод доступа к элементу через плагин? - PullRequest
1 голос
/ 19 апреля 2011

У меня есть плагин, который преобразует выбранные значения из выпадающего меню в объединенную строку для использования внутри текстового поля.

Плагин называется так:

info = $('select');
info.my_plugin({ /* plugin options */ });

ЧтоЯ хотел бы сделать, это добавить метод доступа к этому элементу (предпочтительно коллекцию jQuery), чтобы позже я мог вызвать (после кода выше):

info.get_values();

, который будет вызыватьзакрытый метод (определенный в плагине) для возврата текущего установленного значения для элемента jQuery.

Как мне изменить мой плагин, чтобы сделать это?Мой плагин в настоящее время настраивается с использованием этого шаблона:

$.fn.my_plugin = function(options) {};

Ответы [ 2 ]

2 голосов
/ 19 апреля 2011

Я предлагаю использовать jQuery's .data.Как и

$.fn.myPlugin = function (options) {

    var handler = {};

    this.data('myPlugin', handler);

    handler.options = options;

    handler.getValues = function () {
        // return some values
    };

    return this;

};

Таким образом, API, предоставляемый вашим плагином, остается изолированным и чистым.

Тогда ваши пользователи могут сделать

$('select').myPlugin();

// later somewhere else
$('select').data('myPlugin').getValues();

Примечание.эта идея давно из инструментов jQuery.Не знаю, продолжают ли они это делать.

0 голосов
/ 19 апреля 2011

Вы должны расширить объект $ .fn другой функцией, например:

$.fn.my_plugin = function(options) {

    // ...your plugin code, setting the var "concatenatedDropDownString"

    $.fn.get_values = function(){
        return concatenatedDropDownString;
    };

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