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
(net选项卡)显示Firebug
正在加载:因此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($);
});