jQuery插件在多个实例上存储和使用设置

时间:2013-05-29 14:01:22

标签: javascript jquery plugins slider

我尝试为jQuery创建一个插件。

这是一个带有导航按钮和导航元素的滑块,列出了活动幻灯片。

我认为我一切都很好并且工作,直到我尝试在多个实例上使用插件。 只有最后一个实例似乎正在工作,但第一个实例上使用的方法也触发了第二个实例的方法。

我在stackoverflow上使用了一个示例作为基础并继续从那里开始:jquery plugin call public function inside other public function

现在看来传递设置出了问题,我尝试了很多东西,但现在已经失去了我应该做的事情的概述,以使其发挥作用。

我希望这很清楚,我很难解释这个问题,因为这对我来说有点晦涩难懂。我想我应该创造一个小提琴,使其更清晰:http://jsfiddle.net/NzhnN/

设置存储在method: { "settings": {},}中,然后通过调用method.settings接收。这是我认为出了问题的地方。

正如您所看到的,当单击下一个和上一个btn时,插件的第一个实例不执行任何操作。

如何为特定实例保存/编辑设置,并仅在该实例上使用这些设置。虽然这些也可以被公共职能部门使用。

1 个答案:

答案 0 :(得分:0)

我偶然发现了anwser ..

当方法调用不同的方法时,this超出范围。 解决此问题的方法是,不要调用methods.doSometing()之类的方法,而是使用以下内容:methods.doSomething.apply(this,[options]);。这种方式将this添加到范围中。