我正在为我的一个项目创建一个jQuery插件,我想知道最好的方法是什么。我需要能够随时从插件外部调用插件上的函数。例如,插件外的事件发生了,我想说“插件,执行此操作”。我已经玩了一下,这有效,但感觉不对。
在我的插件中:
$.fn.myPlugin.update = function(element) {
updateTable(element); // this is a function within the plugin
};
要调用此函数,我执行此操作:
$('#someID').myPlugin.update();
这样可行,但元素param为null,我目前只有一个元素用于此插件。我认为它会因多个元素而失败,因为该函数会搜索特定子元素的元素。什么是能够从插件外部调用插件中的函数并使其附加的元素生效的正确方法是什么?我正在学习本教程:http://www.learningjquery.com/2007/10/a-plugin-development-pattern
谢谢!
答案 0 :(得分:2)
首先,所选元素位于this
变量中。元素不会通过元素参数传递给函数。
例如:
$.fn.myPlugin.update = function(){
updateTable(this);
}
应该完美无缺。 如果你想获得与选择器关联的jQuery对象,只需执行
selector = $(this);
selector
是jQuery对象,它是选择器。
答案 1 :(得分:1)
元素参数应该是未定义的,因为您没有向update()函数传递任何内容。如果要引用jQuery对象的内容,请尝试:
jQuery.fn.myPlugin.update = function() {
this.each(function() {
updateTable(this);
}
};
此外,您应该将您的插件应用于jQuery对象,而不是$。那篇文章在这方面给你不好的建议。看看jQuery Plugins/Authoring。