JavaScriptの構文は次のとおりであることを知っています。
function myfunction(param){
//some code
}
要素に追加できるjQueryで関数を宣言する方法はありますか? 例えば:
$('#my_div').myfunction()
JavaScriptの構文は次のとおりであることを知っています。
function myfunction(param){
//some code
}
要素に追加できるjQueryで関数を宣言する方法はありますか? 例えば:
$('#my_div').myfunction()
ドキュメントから:
(function( $ ){
$.fn.myfunction = function() {
alert('hello world');
return this;
};
})( jQuery );
その後、あなたは
$('#my_div').myfunction();
すでに受け取ったすべての回答にもかかわらず、関数で jQuery を使用するためにプラグインを作成する必要がないことは注目に値します。確かに、単純な 1 回限りの関数であれば、プラグインを作成するのはやり過ぎだと思います。セレクターをパラメーターとして関数に渡すだけで、はるかに簡単に実行できます。コードは次のようになります。
function myFunction($param) {
$param.hide(); // or whatever you want to do
...
}
myFunction($('#my_div'));
$
変数名のは必須ではないことに注意してください$param
。その変数に jQuery セレクターが含まれていることを覚えやすくするのは、私の習慣です。param
同様に使用できます。
そこにはたくさんのドキュメント/チュートリアルがありますが、あなたの質問に対する簡単な答えは次のとおりです。
// 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 プラグインと呼ばれます。
$(function () {
//declare function
$.fn.myfunction = function () {
return true;
};
});
$(document).ready(function () {
//call function
$("#my_div").myfunction();
});
うん — あなたが説明しているのは jQuery プラグインです。
jQuery プラグインを作成するには、JavaScript で関数を作成し、オブジェクトのプロパティに割り当てますjQuery.fn
。
例えば
jQuery.fn.myfunction = function(param) {
// Some code
}
プラグイン関数内で、this
キーワードは、プラグインが呼び出された jQuery オブジェクトに設定されます。だから、あなたがするとき:
$('#my_div').myfunction()
その後、this
内部myfunction
は によって返される jQuery オブジェクトに設定され$('#my_div')
ます。
詳細については、 http://docs.jquery.com/Plugins/Authoringを参照してください。
拡張を使用することもできます(jQuery プラグインを作成する方法):
$.fn.extend(
{
myfunction: function ()
{
},
myfunction2: function ()
{
}
});
使用法:
$('#my_div').myfunction();
以下のように、独自の jQuery プラグイン (選択した要素で呼び出すことができる関数) を作成できます。
(関数($){ $.fn.myFunc = 関数(param1, param2){ //this - jquery オブジェクトは選択した要素を保持します } })( jQuery );
後で次のように呼び出します。
$('div').myFunc(1, null);
はい、jquery を使用して選択した要素に適用するメソッドは jquery プラグインと呼ばれ、jquery ドキュメント内のオーサリングに関する情報が豊富にあります。
jqueryは単なる JavaScript であるため、「jquery メソッド」について特別なことは何もないことに注意してください。
プロトタイプを介してjQueryオブジェクトを拡張したいようです(別名、jQueryプラグインを記述します)。これは、jQuery 関数 ( ) を呼び出して作成されたすべての新しいオブジェクト$(selector/DOM element)
がこのメソッドを持つことを意味します。
非常に簡単な例を次に示します。
$.fn.myFunction = function () {
alert('it works');
};