2011-01-04 12 views
0

カラーボックスJSファイル内のメソッドがあります:私は、メソッドの内部術後とposLeft変数を変更したいオーバーロードjQuery Colorboxメソッド?

publicMethod.position = function (speed, loadedCallback) { 
     var 
     animate_speed, 
     // keeps the top and left positions within the browser's viewport. 
     posTop = Math.max(document.documentElement.clientHeight - settings.h - loadedHeight - interfaceHeight, 0)/2 + $window.scrollTop(), 
     posLeft = Math.max($window.width() - settings.w - loadedWidth - interfaceWidth, 0)/2 + $window.scrollLeft(); 

     ...more code... 
}; 

が。コアファイルを編集せずにこれらの変数を変更するにはどうすればよいですか?

編集:

私は次のように自分のスクリプトに機能を追加しようとした:

$.fn.colorbox.position = function (speed, loadedCallback) { 
    ... 
}; 

とも:私の変化の

var originalMethod = $.fn.colorbox.position; 

$.fn.colorbox.position = function (speed, loadedCallback) { 
    ... 
    return originalMethod.apply(this, arguments); 
}; 

なしかかわらず機能していません。私もalert($.fn.colorbox.position);であれば、私の変更も表示されます。私が逃しているものは何ですか?

+0

...あなたは機能を上書きコピー&ペーストする必要がありますと思います。それは "publicMethod"のせいかもしれませんか? – Joker

答えて

0

私の基本的な理解から、JavaScriptには継承の概念がないため、実際にはオーバーロードしていません。ページがロードされた順序で最初の定義の後に2番目の定義が表示されている限り、関数を上書きすることができます。つまり、HTMLの値を下げてください。

私はそれが動作する他のプラグインと同じことをやってみたが、カラーボックスのためにそれがない場合、私は、奇妙な

+0

私はそれを試しました(それはオリジナルの後に表示されます)、それはうまくいきませんでした。あなたに何か別のものがありますか? – Joker