jQuery
オブジェクトの各関数ですが、jQuery.fn
に定義されています。
なので、jQuery
オブジェクトの各関数をフックしたい場合には、jQuery.fn
に定義されているものを差し替えます。
たとえば、show
メソッドをフックして、他の処理を入れたい場合には下記のように書きます。
// 元の関数を退避 jQuery.fn._show = jQuery.fn.show; jQuery.fn.show = function() { // 追加したい処理をここに記載 // 元の関数を呼び出し return jQuery.fn._show.apply(this, arguments); };
idがcontext-menu
の要素に対してshow
メソッドが呼ばれた場合などは、下記のような感じで。
jQuery.fn._show = jQuery.fn.show; jQuery.fn.show = function() { if (this.attr('id') == 'context-menu') { // context-menuの場合には、処理を呼び出し appendMenu(); } return jQuery.fn._show.apply(this, arguments); };