JavaScriptの構文は次のとおりです。
function myfunction(param){
//some code
}
要素に追加できるjQueryで関数を宣言する方法はありますか?例えば:
$('#my_div').myfunction()
$("#someElement").hide()
か.addClass()
...
JavaScriptの構文は次のとおりです。
function myfunction(param){
//some code
}
要素に追加できるjQueryで関数を宣言する方法はありますか?例えば:
$('#my_div').myfunction()
$("#someElement").hide()
か.addClass()
...
回答:
ドキュメントから:
(function( $ ){
$.fn.myfunction = function() {
alert('hello world');
return this;
};
})( jQuery );
その後、あなたはします
$('#my_div').myfunction();
$('my_div').myfunction();
で電話
<my_div></my_div>
ます。idを参照するには、ハッシュ記号が必要my_div
です。
すでに受け取ったすべての回答にもかかわらず、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プラグインと呼ばれます。
うん—あなたが説明しているのはjQueryプラグインです。
jQueryプラグインを作成するには、JavaScriptで関数を作成し、それをオブジェクトのプロパティに割り当てますjQuery.fn
。
例えば
jQuery.fn.myfunction = function(param) {
// Some code
}
プラグイン関数内で、this
キーワードはプラグインが呼び出されたjQueryオブジェクトに設定されます。だから、あなたがするとき:
$('#my_div').myfunction()
次に、this
inside myfunction
はによって返されるjQueryオブジェクトに設定され$('#my_div')
ます。
詳細については、http://docs.jquery.com/Plugins/Authoringを参照してください。
$(function () {
//declare function
$.fn.myfunction = function () {
return true;
};
});
$(document).ready(function () {
//call function
$("#my_div").myfunction();
});
はい、jqueryを使用して選択した要素に適用するメソッドはjqueryプラグインと呼ばれ、jqueryドキュメント内にオーサリングに関する十分な情報があります。
jquery は単なるJavaScriptなので、「jqueryメソッド」について特別なことは何もないことに注意してください。
あなたはいつでもこれを行うことができます:
jQuery.fn.extend({
myfunction: function(param){
// code here
},
});
OR
jQuery.extend({
myfunction: function(param){
// code here
},
});
$(element).myfunction(param);
プロトタイプ(jQueryプラグインを作成する)を介してjQueryオブジェクトを拡張したいようです。これは、jQuery関数($(selector/DOM element)
)の呼び出しを通じて作成されたすべての新しいオブジェクトがこのメソッドを持つことを意味します。
これは非常に簡単な例です:
$.fn.myFunction = function () {
alert('it works');
};
$('#myDatePickerfield').datePicker();