gpt4 book ai didi

javascript - 从不同的 .js 文件中访问 1 个 .js 源文件 (jqTree) 中的变量,以覆盖方法

转载 作者:行者123 更新时间:2023-11-27 23:19:24 25 4
gpt4 key购买 nike

(JS、jQuery 和 jqTree 新手)

我正在尝试重写一个方法 ( JqTreeWidget.prototype.openNode ) 从一个 .js 文件 ( tree.jquery.js ) 在另一个 .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.jshttp://codepen.io/cellepo/pen/LGoaQx 单独来源tree.jquery.js在该 codepen 的 JS 设置中外部添加。

如何(从我的 custom.js 文件中)访问 JqTreeWidget源文件中的变量(tree.jquery.js)?这可能吗?是JqTreeWidget不在 tree.jquery.js 之外的范围内,或者它不是一个全局变量?我希望treeContainer.tree.prototype会有它,但到目前为止我还没有运气......

谢谢!

最佳答案

原型(prototype)对象可以通过以下方式获取:

jQuery.fn.tree("get_widget_class").prototype

请注意,这不是任何 jQuery 插件的通用解决方案。这是由树插件明确实现的。

关于javascript - 从不同的 .js 文件中访问 1 个 .js 源文件 (jqTree) 中的变量,以覆盖方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35513988/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com