$.sub() 非推奨 1.9 削除
jQueryのコピーを生成します。オリジナルに影響を与えずに、プロパティとメソッドの編集をすることが出来ます。
$.sub( ) 1.5追加
jQuery1.7で非推奨となり、jQuery1.8でプラグインに移動されます。
このメソッドは次のような用途で使用されます。
- オリジナルを全く変えずにjQueryのメッソドを上書きしたい場合
- jQueryプラグインのための基本的な名前空間の確保とカプセル化
もし、これを使ってプラグインを作成することを考えているならば、その前にjQuery UI widgetのようなプラグインファクトリーの使用を検討することを強く推奨します。 jQuery UI widgetを使用したプラグイン作成例(英文) があるので、参考にしてみてください。
サンプル
元のjQueryに影響を与えることなく、subのjQueryにメソッドを追加します。
(function(){
var sub$ = jQuery.sub();
sub$.fn.myCustomMethod = function(){
return 'just for me';
};
sub$(document).ready(function() {
sub$('body').myCustomMethod() // 'just for me'
});
})();
typeof jQuery('body').myCustomMethod // undefined
jQueryのメソッドを上書きして、新しい機能を実装します。
(function() {
var myjQuery = jQuery.sub();
//メソッドを定義(上書き)
myjQuery.fn.remove = function() {
// "remove"イベントを発火
this.trigger("remove");
// jQuery本来のremoveメソッドを呼び出し
return jQuery.fn.remove.apply( this, arguments );
};
myjQuery(function($) {
$(".menu").click(function() {
$(this).find(".submenu").remove();
});
// コピーされたjQueryの新しいremoveイベントはここで発火されます。
$(document).bind("remove", function(e) {
$(e.target).parent().hide();
});
});
})();
// 通常のjQueryは要素をremoveする際に、removeイベントを発火しません。
// このイベントは'myjQuery'でのみ、機能します。
固有の機能を持ったプラグインを作成して、元のjQueryに実装しています。
(function() {
// sub() を使ってjQueryのコピーを作成します。
var plugin = jQuery.sub();
// 新しいプラグインをjQueryのコピーに実装します。
plugin.fn.extend({
open: function() {
return this.show();
},
close: function() {
return this.hide();
}
});
// 元のjQueryに作成したプラグインを追加します。
jQuery.fn.myplugin = function() {
this.addClass("plugin");
// コピーしたjQueryのオブジェクトを戻り値とします。
return plugin( this );
};
})();
$(document).ready(function() {
// 次のようにして追加したプラグインの機能を呼び出します。
$('#main').myplugin().open();
// 注: $("#main").open() と呼び出しても機能しません。
});
© 2010 - 2017 STUDIO KINGDOM