我知道在JavaScript中语法是这样的:
function myfunction(param){
//some code
}
是否有一种方法可以在jQuery中声明一个可以添加到元素中的函数?例如:
$('#my_div').myfunction()
我知道在JavaScript中语法是这样的:
function myfunction(param){
//some code
}
是否有一种方法可以在jQuery中声明一个可以添加到元素中的函数?例如:
$('#my_div').myfunction()
当前回答
你可以编写自己的jQuery插件(可以在选定的元素上调用的函数),如下所示:
(function( $ ){ $.fn.myFunc = function(param1, param2){ //this - jquery object holds your selected elements } })( jQuery );
稍后调用它:
$('div').myFunc(1, null);
其他回答
用jQuery创建函数最简单的例子是
jQuery.fn.extend({
exists: function() { return this.length }
});
if($(selector).exists()){/*do something here*/}
是的,你应用于使用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.fn.extend({
myfunction: function(param){
// code here
},
});
OR
jQuery.extend({
myfunction: function(param){
// code here
},
});
$(element).myfunction(param);
听起来好像你想通过jQuery的原型(也就是写一个jQuery插件)来扩展jQuery对象。这意味着通过调用jQuery函数($(selector/DOM element))创建的每个新对象都有这个方法。
这里有一个非常简单的例子:
$.fn.myFunction = function () {
alert('it works');
};
Demo