Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何编写和/或调用jQuery插件?_Javascript_Jquery_Jquery Plugins - Fatal编程技术网

Javascript 如何编写和/或调用jQuery插件?

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

我正试图按照本文编写一个简单的jQuery插件:

我的控制台似乎总是出现以下错误:

HTML

下面是一个简单的JSFIDLE,它仍然会产生问题。我不确定我是否调用了错误的插件,或者插件的编码是否错误。我尝试过jQuery版本1.7.2和1.11.0,但仍然得到相同的结果。如有任何建议,将不胜感激。 而不是

$.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) {