1

我正在开发用于平滑滚动的 jQuery 插件的下一个版本(Smooth Div Scroll)。这是一个基于 jQuery 小部件工厂的有状态插件,因此插件的状态可以在插件初始化后更改。用户可以更改插件的配置选项,也可以使用我提供的一种公共方法。

在这个插件中,我有一个布尔选项:hotSpotScrolling (true/false)。如果用户将此选项设置为 true 作为插件初始化时提供的选项的一部分,则会激活滚动热点。反之亦然 - 如果设置为 false,则禁用。

如果用户在插件初始化后更改此选项,我需要插件响应此更改。因此,如果用户将 hotSpotScrolling 设置为 false,我需要隐藏热点并停用与热点滚动相关的其他一些内容。反之亦然,如果用户将 hotSpotScrolling 设置为 true,我需要显示热点并激活其他内容。

但据我所知,没有办法让 jQuery 插件响应我刚才描述的场景中的选项更改,我什至不确定它是否可取。对我来说,这听起来更像是公共方法的任务?因此,用户不会更改选项,而是调用公共方法,并在此方法中编写更改插件状态的代码。

当谈到在 jQuery 插件中选择更改选项和调用公共方法时,我对最佳实践感兴趣,最好是一些很好的示例,其中包含阐明这种困境的代码。

提前致谢!/托马斯

4

1 回答 1

1

查看更新的选项卡小部件如何处理初始化后更改的选项:

https://github.com/jquery/jquery-ui/blob/master/ui/jquery.ui.tabs.js#L113-140

更新后的手风琴做同样的事情:

https://github.com/jquery/jquery-ui/blob/master/ui/jquery.ui.accordion.js#L157-191

这就是你想要做的。

于 2011-08-04T12:51:19.547 回答