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

function myfunction(param){
  //some code
}

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

$('#my_div').myfunction()

当前回答

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

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

其他回答

来自文档:

(function( $ ){
   $.fn.myfunction = function() {
      alert('hello world');
      return this;
   }; 
})( jQuery );

然后你做了

$('#my_div').myfunction();
$(function () {
    //declare function 
    $.fn.myfunction = function () {
        return true;
    };
});

$(document).ready(function () {
    //call function
    $("#my_div").myfunction();
});

创建一个colorize方法:

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

使用它:

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

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

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

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Define a function in jQuery</title>
<script src="https://code.jquery.com/jquery-3.5.1.min.js"></script>
<script>
$(document).ready(function() {
    $.fn.myFunction = function() { 
        alert('You have successfully defined your function!'); 
    }
    $(".call-btn").click(function(){
        $.fn.myFunction();
    });
});
</script> 
</head>
<body>
    <button type="button" class="call-btn">Click Here</button>
</body>
</html>

你也可以使用extend(创建jQuery插件的方式):

$.fn.extend(
{
    myfunction: function () 
    {
    },

    myfunction2: function () 
    {
    }
});

用法:

$('#my_div').myfunction();