(新到JS,jQuery的,& jqTree)訪問變量1周的.js源文件(jqTree),從不同js文件內,以覆蓋方法
我試圖覆蓋方法(JqTreeWidget.prototype.openNode
)從一個.js文件(tree.jquery.js)在另一個(我自己的custom.js
)。我已閱讀to override a js method in general, I just need to redefine it。所以我試圖做的方法,並我覺得我堅持訪問具有原始方法(JqTreeWidget
)變量。我認爲的挑戰是,原來的方法是在tree.jquery.js
(來源)與我自己的其他custom.js
文件分開,我想要做覆蓋。
這一問題的目標是,讓我在寫something like this我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
來源。
見我custom.js
在http://codepen.io/cellepo/pen/LGoaQx 單獨源tree.jquery.js
在該codepen的JS設置外部添加。
我怎麼能訪問(從我的custom.js
文件內)JqTreeWidget
變量,即源文件(tree.jquery.js
)嗎?它甚至有可能嗎? JqTreeWidget
是否不在tree.jquery.js
以外的範圍內,還是不是全局變量?我希望treeContainer.tree.prototype
會有它,但我到目前爲止還沒有運氣......
謝謝!
jQuery.fn.tree("get_widget_class").prototype
注意,這是不適合任何jQuery插件的一般化的解決方案:
來自上面的CodePen,[在此處分叉並用已接受的答案更新](http://codepen.io/cellepo/pen/zrQXKZ)。 – cellepo