JavaScriptの構文は次のとおりです。
function myfunction(param){
//some code
}
要素に追加できるjQueryで関数を宣言する方法はありますか?例えば:
$('#my_div').myfunction()
ドキュメント :から:
(function( $ ){
$.fn.myfunction = function() {
alert('hello world');
return this;
};
})( jQuery );
それからあなたは
$('#my_div').myfunction();
あなたがすでに受け取ったすべての答えにもかかわらず、あなたが関数でjQueryを使うためにプラグインを書く必要がないことは注目に値します。確かに、それが単純で一回きりの機能であれば、プラグインを書くのはやり過ぎだと思います。 セレクタをパラメータとして関数に渡すだけで、はるかに簡単に実行できます 。あなたのコードは次のようになります。
function myFunction($param) {
$param.hide(); // or whatever you want to do
...
}
myFunction($('#my_div'));
変数名$
の$param
は必須ではありません。その変数にjQueryセレクターが含まれていることを覚えやすくするのは私の習慣です。 param
を使うこともできます。
plethora がドキュメント/チュートリアルの中にありますが、あなたの質問に対する簡単な答えはこれです:
// to create a jQuery function, you basically just extend the jQuery prototype
// (using the fn alias)
$.fn.myfunction = function () {
// blah
};
その関数内で、this
変数は、関数を呼び出したjQueryラップセットに対応しています。だから、のようなもの:
$.fn.myfunction = function () {
console.log(this.length);
};
$('.foo').myfunction();
...クラスfoo
を持つ要素の数をコンソールにフラッシュします。
もちろん、それ以外にも(ベストプラクティス、そしてすべてのジャズと同様に)セマンティクスに関するものが多少ありますので、必ず読んでください。
関数をjQueryオブジェクトで使用できるようにするには、この関数をjQueryプロトタイプに追加します(fnはjQueryのプロトタイプのショートカットです)。
jQuery.fn.myFunction = function() {
// Usually iterate over the items and return for chainability
// 'this' is the elements returns by the selector
return this.each(function() {
// do something to each item matching the selector
}
}
これは通常 jQueryプラグイン と呼ばれます。
うん - あなたが説明しているのはjQueryプラグインだ。
JQueryプラグインを作成するには、JavaScriptで関数を作成し、それをオブジェクトjQuery.fn
のプロパティに割り当てます。
例えば。
jQuery.fn.myfunction = function(param) {
// Some code
}
プラグイン関数内で、this
name__キーワードは、プラグインが呼び出されたjQueryオブジェクトに設定されています。だから、あなたがするとき:
$('#my_div').myfunction()
その後、this
name__内のmyfunction
name__は、$('#my_div')
によって返されるjQueryオブジェクトに設定されます。
全文は http://docs.jquery.com/Plugins/Authoring を参照してください。
$(function () {
//declare function
$.fn.myfunction = function () {
return true;
};
});
$(document).ready(function () {
//call function
$("#my_div").myfunction();
});
extend (jQueryプラグインを作成する方法)を使うこともできます。
$.fn.extend(
{
myfunction: function ()
{
},
myfunction2: function ()
{
}
});
使用法:
$('#my_div').myfunction();
はい、jqueryを使って選択された要素に適用するメソッドはjqueryプラグインと呼ばれ、 オーサリングに関する十分な情報があります jqueryのドキュメント内にあります.
そのjquery は 単なるjavascriptであることに注意する価値があるので、「jqueryメソッド」について特別なことは何もありません。
あなたは以下のようにあなた自身のjQueryプラグイン(選ばれた要素で呼ばれることができる機能)を書くことができます:
(function($){ $ .fn.myFunc = function(param1、param2){ // this - jqueryオブジェクトは選択した要素を保持します } [.____。 (jQuery);
後でそれを呼び出します:
$( 'div')。myFunc(1、null);
あなたはいつでもこれをすることができます:
jQuery.fn.extend({
myfunction: function(param){
// code here
},
});
OR
jQuery.extend({
myfunction: function(param){
// code here
},
});
$(element).myfunction(param);
「colorize」メソッドを作成します。
$.fn.colorize = function custom_colorize(some_color) {
this.css('color', some_color);
return this;
}
これを使って:
$('#my_div').colorize('green');
この簡単な例は、jQueryのドキュメントで 基本プラグインの作成方法 の長所を組み合わせ、 @ Candid 、 @ Michael から答えています。
this
を返すカスタムメソッドは、 に連鎖させることができます。 (ありがとう@Potheek)JQueryで関数を作る最も簡単な例は
jQuery.fn.extend({
exists: function() { return this.length }
});
if($(selector).exists()){/*do something here*/}
プロトタイプを介してjQueryオブジェクトを拡張したいようです(別名 jQueryプラグインの作成 )。これは、jQuery関数($(selector/DOM element)
)を呼び出すことによって作成されたすべての新しいオブジェクトがこのメソッドを持つことを意味します。
これは非常に簡単な例です。
$.fn.myFunction = function () {
alert('it works');
};