我知道在JavaScript中语法是这样的:

function myfunction(param){
  //some code
}

是否有一种方法可以在jQuery中声明一个可以添加到元素中的函数?例如:

$('#my_div').myfunction()

当前回答

是的,你所描述的是一个jQuery插件。

要编写jQuery插件,您需要在JavaScript中创建一个函数,并将其分配给对象jQuery.fn的属性。

E.g.

jQuery.fn.myfunction = function(param) {
    // Some code
}

在插件函数中,this关键字被设置为调用插件的jQuery对象。所以,当你这样做的时候:

$('#my_div').myfunction()

然后myfunction内部的这个将被设置为$('#my_div')返回的jQuery对象。

详情请见http://docs.jquery.com/Plugins/Authoring。

其他回答

你可以这样做:

jQuery.fn.extend({
   myfunction: function(param){
       // code here
   },
});
OR
jQuery.extend({
   myfunction: function(param){
       // code here
   },
});
$(element).myfunction(param);

是的,你应用于使用jquery选择的元素的方法,被称为jquery插件,在jquery文档中有大量关于创作的信息。

值得注意的是,jquery只是javascript,所以“jquery方法”并没有什么特别之处。

创建一个colorize方法:

$.fn.colorize = function custom_colorize(some_color) {
    this.css('color', some_color);
    return this;
}

使用它:

$('#my_div').colorize('green');

这个简单的例子结合了如何在jQuery文档中创建一个基本的插件,以及来自@Candide, @Michael的回答。

命名函数表达式可以改善堆栈跟踪等。 返回此值的自定义方法可能是链式的。(谢谢@Potheek。)

是的,你所描述的是一个jQuery插件。

要编写jQuery插件,您需要在JavaScript中创建一个函数,并将其分配给对象jQuery.fn的属性。

E.g.

jQuery.fn.myfunction = function(param) {
    // Some code
}

在插件函数中,this关键字被设置为调用插件的jQuery对象。所以,当你这样做的时候:

$('#my_div').myfunction()

然后myfunction内部的这个将被设置为$('#my_div')返回的jQuery对象。

详情请见http://docs.jquery.com/Plugins/Authoring。

你可以编写自己的jQuery插件(可以在选定的元素上调用的函数),如下所示:

(function( $ ){
    $.fn.myFunc = function(param1, param2){
        //this - jquery object holds your selected elements
    }
})( jQuery );

稍后调用它:

$('div').myFunc(1, null);