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

jQuery plugin storing and using settings on multiple instances

本文关键字:存储 设置 实例 插件 jQuery      更新时间:2023-09-26

我尝试创建一个jQuery插件。

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

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

我使用了在stackoverflow上找到的一个例子作为基础,并从那里继续:jquery插件在其他公共函数中调用公共函数

现在似乎传递设置出了问题,我尝试了很多事情,现在失去了我应该做些什么来使它工作的概述。

我希望这是清楚的,我很难解释这个问题,因为它对我来说有点神秘。我想我应该创建一个小提琴使它更清楚:http://jsfiddle.net/NzhnN/

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

可以看到,当单击下一个和前一个btn时,插件的第一个实例什么也不做。

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

我偶然发现了答案。

当一个方法调用不同的方法时,this落在作用域之外。解决这个问题的方法是使用methods.doSomething.apply(this,[options]);而不是调用methods.doSometing()这样的方法:这样,this被添加到作用域。