【问题标题】:Electron TypeError: $(...).jstree is not a function when i try to use itElectron TypeError: $(...).jstree 在我尝试使用它时不是一个函数
【发布时间】:2018-10-28 14:50:29
【问题描述】:

我正在使用jstree 我已经从这里下载了代码https://www.jstree.com/

dist folder找到jstree.js并放入我的/js/jstree.js

像这样导入 jstree:

if(inElectron()){
    window.jQuery = require('./js/jquery.min.js');
    window.$ = window.jQuery;
    window.jstree = require('./js/jstree.js');
}

当我尝试使用它时:

$('#jstree').jstree();// for just demo with minimal code(实际上我使用的是这里的完整代码http://jsfiddle.net/t4s7dz52/

我遇到以下错误:

"TypeError: $(...).jstree 不是函数

注意:我可以在整个项目中使用jQuery,所以没有import error,因为js 在同一个文件夹中

请帮助我提前谢谢!!!!

【问题讨论】:

  • 您是否尝试过先导入 jQuery?
  • jstree 依赖于 jQuery。在加载库本身之前无法加载 jQuery 插件
  • @DaveNewton,@charlietfl,抱歉在代码重新格式化期间jstree 上移了,即使现在我也得到相同的 ERROR此处更新代码
  • @skBangalore 我建议的方法对你有用吗?
  • @skBangalore,你确定 jsTree 真的被导入了吗?因为错误“$(...).jstree is not a function”暗示了其他情况。尝试在 jsTree 的 require() 行之后添加 console.log( typeof window.jQuery.fn.jstree );,然后查看控制台显示的内容。

标签: javascript jquery jstree


【解决方案1】:

jstree 模块导出一个必须首先调用的工厂,以便 jstree 可以注册为 jQuery 插件。请尝试以下操作:

window.jQuery = require('./js/jquery.min.js');
window.$ = window.jQuery;
window.jstree = require('./js/jstree.js')(window.$);

【讨论】:

    【解决方案2】:

    如果使用电子:

    <script>window.$ = window.jQuery = require('./path/to/jquery');</script>
    

    【讨论】:

    • 他在发布的前两行中究竟做了什么?
    【解决方案3】:

    你试过这个吗:

    //wrapped to load after jQuery
    $(function(){
        ....
        window.jstree = require('./js/jstree.js');
        $('#jstree').jstree();
        ....
    
    });
    

    【讨论】:

    • @skBangalore 我已经更新了答案,作为另一个版本。
    猜你喜欢
    • 1970-01-01
    • 2021-03-02
    • 1970-01-01
    • 2018-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-06
    • 2022-10-17
    相关资源
    最近更新 更多