javascript - jQuery/Dojo - 如何将 jQuery 与 Dojo 工具包一起使用

标签 javascript jquery dojo

如何将 jQuery 与 Dojo 工具包结合使用?我听说这两个库同时使用,jQuery 用于 DOM 相关,Dojo 用于 UI (dijit),但我找不到任何教程或示例。如果加载这两个库,我会遇到任何冲突或问题吗?

最佳答案

您可以通过网站头部的脚本标记将 jQuery 拉入您的应用程序来使用 jQuery,不会与 dojo 发生冲突。

但是,在 dojo 中使用 jQuery 时需要记住一些事情,尤其是 dojo version 1.8及其全面的 AMD 支持。利用 AMD ( asynchronous module definition ) 会更干净(特别是如果您无法在网站的头部引入 jQuery)。您需要在 dojo 配置脚本中创建一个包条目才能正确拉入框架。下面是一个使用 jquery 和 jquery-ui 库位置的示例...

<!-- external library configuration code included in header to make sure this
    is loaded before code in body-->
    <!-- dojo config -->
    <script>
            /* Instead of using the inline dojo-config attribute
            * create this variable so we can configure dojo here.
            * This seems a little clearer, easier to read as a config.
            */
            var dojoConfig = {
                baseUrl: "./",
                async: true,
                isDebug: true,
                parseOnLoad: false,//false to allow for us to call this independantly in js later on

                //here are the packages dojo will be aware of and related js files
                packages: [
                    //dojo specific packages
                    {name: "dojo", location: "libs/dojo"},
                    {name: "dijit", location: "libs/dijit"},
                    {name: "dojox", location: "libs/dojox"},
                    {name: "jquery", location: "libs/jquery", main: "jquery-1.8.2"},
                    {name: "jqueryui", location: "libs/jquery", main: "jquery-ui-1.9.1"},
                ]

            };


    </script>

我的文件夹结构在根目录下只有一个 libs 文件夹,这就是为什么我使用“./”作为基本 url,但您也可以轻松 pull from a cdn location .

如果没有此配置条目,jQuery 将无法按预期运行,并且您最终可能会在控制台中弹出“不是函数”错误。

如果您确实放置了一个单独的脚本标记来拉入 jQuery 或其他第三方框架,并且还使用 AMD 来执行相同的操作,那么当您 require 时,您最终将再次拉动它。 这是第一次在道场上使用。

关于javascript - jQuery/Dojo - 如何将 jQuery 与 Dojo 工具包一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2850314/

相关文章:

Javascript 回调不起作用,在 ajax 请求完成之前运行回调

javascript - 为什么 .html() 和 .text() 只选择第一个词?

select - Dojo dgrid :(预)在渲染中选择行

javascript - 为什么 Node 中的 console.log(this) 返回一个空对象?

javascript - 在 Canvas 上绘制多个图像,每个图像都旋转

javascript - jquery ajax,在 GET 调用后在哪里进行异步计算

javascript - 将代码从 jquery 转换为原型(prototype)或 dojo

datagrid - 如何在dojox.grid.DataGrid中启用浏览器上下文菜单?

javascript - 将列表显示为 <选项值 ="">

javascript - 我可以优化库中的重主线程 JavaScript 视觉效果吗?