Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/400.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么不是';t RequireJS将jQuery传递到函数别名中?_Javascript_Jquery_Requirejs - Fatal编程技术网

Javascript 为什么不是';t RequireJS将jQuery传递到函数别名中?

Javascript 为什么不是';t RequireJS将jQuery传递到函数别名中?,javascript,jquery,requirejs,Javascript,Jquery,Requirejs,我下载了的。它们加载的任何内容都会传递到相关函数的参数列表中(按相应顺序) 所以我决定试试……但它似乎不起作用 Firebug(net选项卡)显示jQuery正在加载:因此RequireJS显然成功地完成了该部分 Firebug(控制台选项卡)显示“$不是函数” 我的问题是:为什么别名没有填充 我的代码看起来像: <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <titl

我下载了的。它们加载的任何内容都会传递到相关函数的参数列表中(按相应顺序)

所以我决定试试……但它似乎不起作用

  • Firebug
    (net选项卡)显示
    jQuery
    正在加载:因此
    RequireJS
    显然成功地完成了该部分
  • Firebug
    (控制台选项卡)显示“$不是函数”
我的问题是:为什么别名没有填充

我的代码看起来像:

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>

    <script src="Scripts/require.js" type="text/javascript"></script>

    <script type="text/javascript">

        require(["scripts/jQuery/Core/jquery-1.7.2.min"], function ($) {

            // jQuery is not passed-into the function, so the alias fails!
            $(function () {
                var stop = "";
            });
        });

    </script>

</head>
<body>
    <form id="form1" runat="server">
    </form>
</body>
</html>
//Inside scripts/main.js
require(["some/module", "a.js", "b.js"], function(someModule) {
    //...
});

jQuery应该通过特殊名称“jQuery”加载,否则它将不会注册自身(因为jQuery使用命名的define)


这就是为什么命名定义被认为是反模式的主要原因,并且应该仅在需要时使用(当您在同一文件中有多个模块时)。

您的脚本文件夹是“脚本”还是“脚本”

您正在请求“Scripts/require.js”以及“Scripts/jQuery/Core/jQuery-1.7.2.min”。看看Firebug的Net选项卡。。。我打赌您在那里生成了一个404。

请务必阅读RequireJS+jQuery示例项目的“”。使用jQuery有很多复杂的地方,您需要在初始设置期间决定如何最好地处理项目中的jQuery。但是,一旦你找到了最适合你的方法并实施了它,它就不会再成为问题了


jQuery并不是一个真正的AMD模块,如果它检测到define函数可用的话,它们只是在代码库中进行了一次黑客攻击来定义。例如,这意味着jQuery模块名称将始终为“jQuery”(请注意小写字母“q”),除非您自己包装它,因此如果您在配置中定义它的路径,则必须具有名为“jQuery”的键(同样,使用小写字母“q”),否则将存在不匹配。这在我们第一次在项目上设置RequireJS时(我们将密钥命名为“jQuery”)让我们感到有些不快。

谢谢,谢谢,谢谢,谢谢!这简直快把我逼疯了!非常感谢。唯一对我有用的答案是包含一个独立的jQuery文件。
// create an alias that points to proper file
require.config({
  paths : {
    jquery : "http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min"
  }
});

// require jquery usign the path config
require(["jquery"], function ($) {
    console.log($);
});