创建有状态的jQuery插件是最佳实践吗?如果有,我该怎么做呢?

Is it a best practice to create a jQuery plug-in that is stateful ? If so, how do I do that?

本文关键字:如果 我该怎么做 最佳 状态 jQuery 插件 创建      更新时间:2023-09-26

假设我们有一个jQuery寻呼机插件。所以我可以这样写:

$("pager-div").pager({ page: 1, rowsPerPage: 30, count: 1780 });

Ok。现在我想把传呼机移到下一页。这里有两个选项:

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中维护状态?

我选选项2。你可以把你的变量存储在jQuery的data字段中。

的例子:

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