Javascript jQuery不能与RequireJS一起使用
我知道我的问题与此非常相似,但我有同样的问题,没有一个解决方案适合我 我的目录结构如下所示:Javascript jQuery不能与RequireJS一起使用,javascript,jquery,requirejs,Javascript,Jquery,Requirejs,我知道我的问题与此非常相似,但我有同样的问题,没有一个解决方案适合我 我的目录结构如下所示: static lib require.js jquery-1.11.3.js progressbar.js client client.messages.js client.js main.js config.js 我的HTML文件如下所示: <script src="{{ ur
static
lib
require.js
jquery-1.11.3.js
progressbar.js
client
client.messages.js
client.js
main.js
config.js
我的HTML文件如下所示:
<script src="{{ url_for('static', filename='scripts/lib/require.js') }}"></script>
<script>
var require = {
baseUrl: "/static/script",
paths: {
/* Load common libraries from CDN and fallback to local versions. */
"jquery": "lib/jquery-1.11.3.min.js",
"progressbar": "lib/progressbar.min.js",
"messages": "client/client.messages.js"
}
};
</script>
<script src="{{ url_for('static', filename='scripts/main.js') }}"></script>
然后HTML文件是这样的:
var require = {
baseUrl: "/static/script",
paths: {
/* Load common libraries from CDN and fallback to local versions. */
"jquery": "lib/jquery-1.11.3.min.js",
"progressbar": "lib/progressbar.min.js",
"messages": "client/client.messages.js"
}
};
<script src="{{ url_for('static', filename='scripts/config.js') }}"></script>
<script src="{{ url_for('static', filename='scripts/lib/require.js') }}"></script>
<script src="{{ url_for('static', filename='scripts/main.js') }}"></script>
我得到的错误是:
未捕获引用错误:$未定义
对于bodyload()中的此行:
我错过什么了吗?嗯。。。您正在加载RequireJS,您已经对其进行了配置,但是您没有使用它
获得您想要的东西的一种方法是:
var bodyLoaded = function () {
//load scripts first
var scripts = ['static/scripts/client/client.messages.js', 'static/scripts/client/client.js'];
require(['jquery'], function ($) {
$.getScript(scripts[0], function () {
$.getScript(scripts[1], function () {
pluginCheck();
});
});
});
};
我已经添加了require(['jquery']),…
,以便jquery实际得到加载
话虽如此,很可能这不是您想要结束的解决方案。首先,在我看来,client.messages.js
和client.js
是加载RequireJS的候选对象,因此,实际上,应该配置RequireJS来查找它们(我在配置中看到了client.message.js
,但没有看到client.js
)。您很可能需要使用shim
来定义它们之间的依赖关系
我建议您仔细阅读。好吧……您正在加载RequireJS,您已经配置了它,但是您没有使用它
获得您想要的东西的一种方法是:
var bodyLoaded = function () {
//load scripts first
var scripts = ['static/scripts/client/client.messages.js', 'static/scripts/client/client.js'];
require(['jquery'], function ($) {
$.getScript(scripts[0], function () {
$.getScript(scripts[1], function () {
pluginCheck();
});
});
});
};
我已经添加了require(['jquery']),…
,以便jquery实际得到加载
话虽如此,很可能这不是您想要结束的解决方案。首先,在我看来,client.messages.js
和client.js
是加载RequireJS的候选对象,因此,实际上,应该配置RequireJS来查找它们(我在配置中看到了client.message.js
,但没有看到client.js
)。您很可能需要使用shim
来定义它们之间的依赖关系
我建议您仔细阅读。您是否尝试过将$
更改为jQuery
?对不起,您能把您的观点说得更清楚一点吗?我到底可以更改什么?尝试将代码$.getScript(…
更改为jQuery.getScript(…
不,有(几乎)相同的错误:“未捕获引用错误:未定义jQuery”您是否尝试更改jQuery
的$
?对不起,您能否更清楚地说明您的观点?我可以更改什么?请尝试将代码$.getScript(…
更改为jQuery.getScript(…
不,存在(几乎)相同的错误:”未捕获引用错误:jQuery没有定义“非常感谢!这就是问题所在。我到目前为止还没有使用client.js
,这就是我没有加载的原因。非常感谢!这就是问题所在。我到目前为止还没有使用client.js
,这就是我没有加载的原因。
$.getScript(scripts[0], function () {
var bodyLoaded = function () {
//load scripts first
var scripts = ['static/scripts/client/client.messages.js', 'static/scripts/client/client.js'];
require(['jquery'], function ($) {
$.getScript(scripts[0], function () {
$.getScript(scripts[1], function () {
pluginCheck();
});
});
});
};