requirejs加载jquery插件的问题

发布于 2022-09-01 23:14:47 字数 1835 浏览 15 评论 0

我写的模块简目录

/index.html
/vendor/jquery.js
/vendor/hl.js
/vendor/require.js
/js/index.js

其中 hl扩展了jquery 的$.getUrlPrameter() 方法
index.js是 index.html的业务逻辑模块 index.js中需要调用$.getUrlPrameter()

1. /vendor/jquery.js

2. /vendor/hl.js (为jquery扩展了一个$.getUrlParameter方法)

(function(factory) {
    if (typeof exports == "object" && typeof module == "object") // CommonJS
        factory(require("jquery"));
    else if (typeof define == "function" && define.amd)// AMD
        define(["jquery"], factory);
    else
        (this || window).HL = factory();
})(function($) {

   $.getUrlParameter = function(parameterName){
        //获取url参数值
        var reg = new RegExp("(^|&)" + parameterName + "=([^&]*)(&|$)", "i");
        var arr = location.search.substr(1).match(reg);
        if (arr) 
            return arr[2]; 
        else 
            return null;
    }
})

3. /js/index.js 入口文件 想要在这个文件中使用2中的扩展方法$.getUrlParameter

define(function(require){

    var $ = require('../vendor/jquery');
    var HL = require('../vendor/hl');

    function init(){
        alert($.getUrlParameter('v'))
    };
    return {
        init:init
    }
})

4./index.html 入口html文件

<!DOCTYPE html>
<html lang="zh-cn">
<head>
    <meta charset="UTF-8">
    <title>test</title>
</head>
<body>
<script src="vendor/requirejs/require.js"></script>
<script>
    require.config({
    paths: {
      "jquery": "vendor/jquery",
            "hl":"vendor/hl"
    }
    });

    require(['jquery','hl','./js/index'],function($,hl,m){
        m.init();
    })

</script>
</body>
</html>

请问我这错在哪里了?为何在index.js中没能初始化

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

诗化ㄋ丶相逢 2022-09-08 23:14:47

你的index.js里

var $ = require('../vendor/jquery');
var HL = require('../vendor/hl');

你在config里的path配置过模块id了 导致两个两个名字指向一个文件
参考 这个错误的第三条
http://requirejs.org/docs/errors.html#timeout

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文