我知道在JavaScript中语法是这样的:
function myfunction(param){
//some code
}
是否有一种方法可以在jQuery中声明一个可以添加到元素中的函数?例如:
$('#my_div').myfunction()
我知道在JavaScript中语法是这样的:
function myfunction(param){
//some code
}
是否有一种方法可以在jQuery中声明一个可以添加到元素中的函数?例如:
$('#my_div').myfunction()
当前回答
尽管你已经收到了这些答案,但值得注意的是,在函数中使用jQuery并不需要编写插件。当然,如果它是一个简单的一次性函数,我认为写一个插件是多余的。只要将选择器作为参数传递给函数,就可以更容易地完成这个任务。你的代码应该是这样的:
function myFunction($param) {
$param.hide(); // or whatever you want to do
...
}
myFunction($('#my_div'));
注意,变量名$param中的$不是必需的。这只是我的一个习惯,让我很容易记住变量包含一个jQuery选择器。你也可以用参数。
其他回答
听起来好像你想通过jQuery的原型(也就是写一个jQuery插件)来扩展jQuery对象。这意味着通过调用jQuery函数($(selector/DOM element))创建的每个新对象都有这个方法。
这里有一个非常简单的例子:
$.fn.myFunction = function () {
alert('it works');
};
Demo
你可以编写自己的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*/}
你也可以使用extend(创建jQuery插件的方式):
$.fn.extend(
{
myfunction: function ()
{
},
myfunction2: function ()
{
}
});
用法:
$('#my_div').myfunction();
是的,你应用于使用jquery选择的元素的方法,被称为jquery插件,在jquery文档中有大量关于创作的信息。
值得注意的是,jquery只是javascript,所以“jquery方法”并没有什么特别之处。