2009-10-29 56 views
1

我创建一个jQuery插件我的一个项目,我想知道什么是去了解这一点的最好办法。我需要能够随时从插件外部调用插件的功能。例如,插件外的事件发生,我想说“插件,做到这一点”。我玩过一段时间,这很有效,但感觉不对。如何调用一个jQuery插件(创建新的插件)的功能?

在我的插件:

$.fn.myPlugin.update = function(element) { 
    updateTable(element); // this is a function within the plugin 
}; 

调用这个函数,我这样做:

$('#someID').myPlugin.update(); 

这工作,但该元素参数是空,我只有现在这个插件一个元素。我认为它会因多个元素而失败,因为函数会为特定的子元素搜索该元素。能够从外部调用插件中的函数的正确方法是什么,并使其影响其附加的元素?我下面这个教程:http://www.learningjquery.com/2007/10/a-plugin-development-pattern

谢谢!

回答

2

首先,所选择的元件在this变量。元素不会通过元素参数传递给函数。 举例:

$.fn.myPlugin.update = function(){ 
    updateTable(this); 
} 

应该完美地工作。 如果你想获得与选择相关的jQuery对象只是做

selector = $(this); 

selector是jQuery的对象,它是选择。

1

元素参数应该是不确定的,因为你没有传递给update()函数。如果你想参考jQuery对象的内容,请尝试:

jQuery.fn.myPlugin.update = function() { 
    this.each(function() { 
    updateTable(this); 
    } 
}; 

此外,你应该将你的插件应用到jQuery对象,而不是$。那篇文章在这方面给了你不好的建议。看看jQuery Plugins/Authoring

+0

其实,文章讨论关闭,但@Ryan似乎没有去过那儿。 – fncomp 2010-12-08 20:43:55