创建有状态的jQuery插件是最佳做法吗?如果是这样,我该怎么做?

时间:2011-10-11 19:03:01

标签: javascript jquery jquery-plugins

假设我们有一个jQuery寻呼机插件。所以我能够做到这一点:

$("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();

这里有两个问题:

  1. 在我看来,方法2更好,因为它保持了连锁性,我不需要继续引用寻呼机。我可以使用$函数在任何地方访问它。问题是:我应该使用方法2吗?
  2. 如果(1)的答案为真,我该如何实施?也就是说,如何在jQuery中维护状态?

1 个答案:

答案 0 :(得分:3)

我投票支持选项2.您可以将您控制的变量存储在jQuery的数据字段中。

示例:

$(selector).data("option", {page: 1});
alert($.data("option").page);