#javascript #jquery #jquery-plugins
#javascript #jquery — запрос #jquery-плагины #jquery #jquery-plugins
Вопрос:
Давайте предположим, что у нас есть подключаемый модуль jQuery pager. Так что я был бы в состоянии сделать это:
$("pager-div").pager({ page: 1, rowsPerPage: 30, count: 1780 });
ОК. Теперь я хочу переместить пейджер на следующую страницу. Здесь у меня есть два варианта:
1) Мой плагин $.pager
не возвращает jQuery. Он возвращает объект, у которого есть вызываемый метод nextPage
, так что я мог бы сделать что-то вроде этого:
var pager = $("pager-div").pager({ page: 1, rowsPerPage: 30, count: 1780 });
pager.nextPage();
2) Мой плагин возвращает jQuery. Так будет лучше, если он сохранит цепочечность. Так что я мог бы сделать что-то вроде этого:
$("pager-div").pager({ page: 1, rowsPerPage: 30, count: 1780 });
$("pager-div").nextPage();
Здесь два вопроса:
- Мне кажется, что подход 2 лучше, поскольку он поддерживает цепную связь, и у меня не было бы необходимости сохранять ссылку на пейджер. Я мог бы получить к нему доступ в любом месте, используя функцию $. Вопрос в том, должен ли я использовать подход 2?
- Если ответ из (1) верен, как мне его реализовать? То есть, как мне поддерживать состояние в jQuery?
Комментарии:
1. вы бы не поддерживали состояние в самом jQuery как таковом, вы могли бы использовать технологию браузера для хранения информации: cookies, localStorage и т.д.
2. вы можете сохранить свои переменные состояния в объекте data() объекта jQuery object. Если это то, что вы имели в виду?
Ответ №1:
Я голосую за вариант 2. Вы можете хранить свои переменные, управляемые в поле данных jQuery.
пример:
$(selector).data("option", {page: 1});
alert($.data("option").page);