我正在尝试编写一个插件,它将选择多个元素,然后对它们应用一些私有方法(参见下面的代码)。然后我还想让用户能够使用 .activate() 函数手动触发插件方法的激活。
这是我的代码:
- 标记:https ://github.com/simonwalsh/jquery.imagepox/blob/master/demo/index.html
- JS:https ://github.com/simonwalsh/jquery.imagepox/blob/master/dist/jquery.imagepox.js
基本上,当我选择多个项目然后尝试像这样使用手动激活时:
$(".pox-wrapper").imagepox({ // NOTE: selects two elements
manualActivation: true
});
var manual = $(".pox-wrapper").data('imagepox');
setTimeout(function(){
manual.activate();
}, 5000);
它只会将 activate() 方法应用于查询中的第一个元素......
这是我的第一个 jQuery 插件,到目前为止我已经能够处理所有事情,但我不确定这个插件是否是有效调用公共方法的正确方法。我还尝试在插件中使用带有事件侦听器的自定义事件,但它仍然只将方法应用于页面中的第一个元素。
提前致谢 :)