2
<script type="text/javascript" src="/Scripts/jquery-1.8.2.min.js"></script>
<script type="text/javascript" src="/Scripts/jquery.mobile-1.2.0.min.js"></script>
<script type="text/javascript">
    console.log(jQuery.mobile !== undefined && 'good'); // prints 'good'!
</script>

<script type="text/javascript" data-main="/comp/pages/Index.js" src="/Scripts/require.js></script>

<script type="text/javascript">
    console.log(jQuery.mobile !== undefined && 'good'); // prints 'good'!
</script>

但在我Index.js的,jQuery.mobile消失了:

require([], function (view) {
    console.log(jQuery.mobile === undefined && 'undefined!'); // prints 'undefined!'
});

我怎么带mobile回来jQuery?(我显然不在乎有一些 mobilein jQuery,但有兴趣使用jQuery Mobilewith RequireJS.. 只是为了说清楚..)

编辑1:

我尝试添加require到 Index.js:

console.log(jQuery.mobile === undefined && 'undefined!'); // prints 'undefined!'
require(['/Scripts/jquery-1.8.2.min.js', '/Scripts/jquery.mobile-1.2.0.min.js'],
    function (jQuery,jqm, view) {

    console.log(jQuery.mobile === undefined && 'undefined!'); // prints 'undefined!'
});
4

4 回答 4

1

您是如何设法加载 index.js 的?
RequireJS 将 .js 添加到文件中,因此/comp/pages/Index.js您应该使用 /comp/pages/Index

<script type="text/javascript" data-main="/comp/pages/Index" src="/Scripts/require.js></script>
于 2012-11-13T11:04:07.480 回答
0

我假设您已经正确设置了 RequireJS 和 jQuery。

在您的 Index.js 文件中,您需要 jQuery 和 jQuery mobile 文件;例如:

require ("/Scripts/jquery");
require ("/Scripts/jquery.mobile");

我还要指出,您应该重命名文件,以便文件名中不包含版本号 - 这将允许您更新到较新的版本,而无需更改代码。

于 2012-11-13T11:00:07.497 回答
0

尝试使用旧版本的 jQuery Mobile。

jQuery 1.8.2 不适用于 RequireJS,最新版本的 jQuery Mobile 也是如此。

您还必须确保在您的代码中需要 jQuery 和 jQuery mobile JS 文件。

我认为你应该看看这个线程: 我如何同时使用 requireJS 和 jQuery?

于 2012-11-13T11:00:16.060 回答
0

这是我的解决方法,因为到目前为止,我没有找到解决方案:我将全局jQuery对象/函数包含在HTML, 中后立即保存在全局变量中myGlobalObject

<link rel="stylesheet" href="content/jqm/jquery.mobile-min.css"/>
<script src="content/jqm/jquery.min.js" type="text/javascript"></script>
<script src="content/jqm/jquery.mobile-min.js" type="text/javascript"></script>
<!--jQuery RequireJS issue workaround:-->
<script type="text/javascript"> window.myGlobalObject = { jQuery:jQuery }; </script>

然后我定义了一个新文件,它以熟悉jq.js的形式返回这个全局对象:RequireJS

define(function(){
    return myGlobalObject.jQuery;
});

每当我需要它时,我都会使用这个“中间”模块:

require(['/content/jq.js'], function ($) {
    ...
});
于 2012-11-24T22:37:46.350 回答