Может ли плагин принимать несколько параметров
Например, есть плагин, который принимает только параметры.
$.fn.createTablePlugin = function (methods, prop) {
var options = $.extend({
selectorForCreateElemInto: 'body',
classTableName: nameTable,
classTableHeadName: nameTableHead,
classTableBodyName: nameTableBody,
messageForPluginDataTables: messageRuForPluginDataTables,
arrTh: [], /*['id', 'имя', 'возраст', 'login']*/
arrDataAttrName: [], /*[ {'data-dataType': 'dateType'}, {data-dataType': 'nameType','data-maxLength': '7',}]*/
styleForTable: styleAttributesForTable,
styleForTh: styleAttributesForTh,
styleForTd: styleAttributesForTd,
url: '', /*адрес, для запроса данных от сервера*/
selectorErrMessageFromServer: '' /*селектор, указывающий на вывод сообщений об ошбике*/
}, prop);
}
Там очень много работы сделано. Теперь нужно создать массив методов, которые могут подключать дополнительные сторонние плагины. Например, у меня плагин создает таблицу от начала до конца, он же отправляет ajax-запрос на сервер, получает данные, разбирает их , создается таблица с этими данными. И еще я здесь же подключил плагин DataTables, с многочисленными настройками. Хочется чтобы плагин стал более универсальным. Иногда его достаточно, с его стилями создать таблицу и нет нужды подключать DataTables, поэтому с помощью методов и скрипта хотел бы настроить возможность, где будет вызываться мой плагин, При этом сделать так, чтобы можно было указывать если нужно метод, который будет подключать с нужными настройками мой плагин, если же метод не указан тогда должна выполняться настройка и создание таблицы по умолчанию со своими стилями. А как это принимать в плагине , как разбирать такие параметры ? https://thimbleprojects.org/alex-r/638619 |
Мне кажется вы куда-то не туда двигаетесь с плагинами jQ.
Не все в js - плагины jQuery. Что вам нужно так и не понял. Сложно читать сложносочиненное предложение содержащее под 50 слов и не потерять мысль. |
Цитата:
Вместо того, чтобы расширять существующий jQuery, вы можете создать класс, описывающий «jquery» таблиц. И в нём описать все методы необходимые для работы с «jquery» таблиц.
class TableExtension extends jQuery {
constructor(options) {
super("table");
this.__proto__ = TableExtension.prototype;
this.options = this.extend(this.constructor.defaultOptions, options);
}
static get defaultOptions() {
return {
};
}
}
|
| Часовой пояс GMT +3, время: 08:51. |