我尝试为jQuery创建一个插件。
这是一个带有导航按钮和导航元素的滑块,列出了活动幻灯片。
我认为我一切都很好并且工作,直到我尝试在多个实例上使用插件。 只有最后一个实例似乎正在工作,但第一个实例上使用的方法也触发了第二个实例的方法。
我在stackoverflow上使用了一个示例作为基础并继续从那里开始:jquery plugin call public function inside other public function
现在看来传递设置出了问题,我尝试了很多东西,但现在已经失去了我应该做的事情的概述,以使其发挥作用。
我希望这很清楚,我很难解释这个问题,因为这对我来说有点晦涩难懂。我想我应该创造一个小提琴,使其更清晰:http://jsfiddle.net/NzhnN/
设置存储在method: { "settings": {},}
中,然后通过调用method.settings
接收。这是我认为出了问题的地方。
正如您所看到的,当单击下一个和上一个btn时,插件的第一个实例不执行任何操作。
如何为特定实例保存/编辑设置,并仅在该实例上使用这些设置。虽然这些也可以被公共职能部门使用。
答案 0 :(得分:0)
我偶然发现了anwser ..
当方法调用不同的方法时,this
超出范围。
解决此问题的方法是,不要调用methods.doSometing()
之类的方法,而是使用以下内容:methods.doSomething.apply(this,[options]);
。这种方式将this
添加到范围中。