Javascript 如何编写和/或调用jQuery插件?
我正试图按照本文编写一个简单的jQuery插件: 我的控制台似乎总是出现以下错误: HTML 下面是一个简单的JSFIDLE,它仍然会产生问题。我不确定我是否调用了错误的插件,或者插件的编码是否错误。我尝试过jQuery版本1.7.2和1.11.0,但仍然得到相同的结果。如有任何建议,将不胜感激。 而不是Javascript 如何编写和/或调用jQuery插件?,javascript,jquery,jquery-plugins,Javascript,Jquery,Jquery Plugins,我正试图按照本文编写一个简单的jQuery插件: 我的控制台似乎总是出现以下错误: HTML 下面是一个简单的JSFIDLE,它仍然会产生问题。我不确定我是否调用了错误的插件,或者插件的编码是否错误。我尝试过jQuery版本1.7.2和1.11.0,但仍然得到相同的结果。如有任何建议,将不胜感激。 而不是 $.blogPost = function(el, options) {...} 试一试 $.fn命名空间中的函数可以作为jQuery集合上的方法使用,这正是您所需要的 $(selecto
$.blogPost = function(el, options) {...}
试一试
$.fn
命名空间中的函数可以作为jQuery集合上的方法使用,这正是您所需要的
$(selector).blogPost();
这种方法通常被称为“插件”
在其他(罕见的)情况下,您可能希望扩展jQuery
名称空间本身,在这种情况下,您的$.foo=function(){…}
将适用。这些函数称为“静态方法”。背景:
jQuery函数(jQuery()
或$()
)充当工厂,在传入选择器时返回jQuery集合的新实例。因此$('#foo')
返回jQuery集合的实例。为了调用该实例的方法,例如$('#foo').somePlugin()
,必须在实例上定义这些方法。将方法添加到实例上的主要方法是将它们添加到构造函数的原型中
解决方案
因此,解决特定错误的方法是在jQuery集合构造函数的原型上定义jQuery插件。这个原型的别名是jQuery.fn
(而jQuery
的别名是$
,所以$.fn也可以)。向原型添加方法非常简单,如$.fn.somePlugin=function(){}
因此,您的插件需要定义如下:
$.fn.blogPost = function(el, options) {
更多
正如我所说的,这是针对您引用的具体错误。现在我假设您在教程中没有做得太多,所以我不会讨论代码中的其他问题(比如插件没有返回用于链接的集合)
$.fn.blogPost = function(el, options) {...}
$(selector).blogPost();
$.fn.blogPost = function(el, options) {