(JS、jQuery、jqTree の新機能)
ある .js ファイル( tree.jquery.js )のメソッド( JqTreeWidget.prototype.openNode
)を別の(自分の) ファイルでオーバーライドしようとしています。custom.js
一般的にjsメソッドをオーバーライドするには、それを再定義する必要があることを読みました。したがって、メソッドでそれを実行しようとしていますが、元のメソッド( )を持つ変数へのアクセスに固執していると思います。課題は、元のメソッドが(ソース)にあり、オーバーライドを実行したい自分の他のファイルとは別であることだと思います。JqTreeWidget
tree.jquery.js
custom.js
この質問の目標は、私の中にこのようなものを書くことができるようにすることです(このcustom.js
質問<reference to JqTreeWidget.prototype.openNode>
への回答になります):
var originalMethod = <reference to JqTreeWidget.prototype.openNode>;
// Override of originalMethod
<reference to JqTreeWidget.prototype.openNode> = function( node, slide ){
// my code I want to happen 1st here
changeAncestorHeightRecursively( node, true);
// my code is done, and now I'm ready to call the original method
originalMethod.call( this, node, slide );
}
tree.jquery.js
実際にソースにハッキングすることなく、オーバーライドを行う最も非侵入的な方法だと思います。
http://codepen.io/cellepo/pen/LGoaQxcustom.js
で私を参照してください
別のソースtree.jquery.js
は、その codepen の JS 設定で外部から追加されます。
ソース ファイル ( ) 内の変数に(自分のcustom.js
ファイル内から) アクセスするにはどうすればよいですか? JqTreeWidget
tree.jquery.js
それは可能ですか?JqTreeWidget
の外側のスコープにありませtree.jquery.js
んか、それともグローバル変数ではありませんか? 私はそれを望んtreeContainer.tree.prototype
でいましたが、今のところ運がありません...
ありがとう!