none
请问为什么VSAC012不支持jquery RRS feed

  • 问题

  • 用HTML,CSS和JavaScript制作的web游戏,为什么用VS2012生成后报错?显示不支持jquery。错误代码附图

    2012年7月18日 13:09

答案

  • 既然还没用到 processAll 那也没关系,问题与这个关系不大,可以忽略,以后有时间深入了你可以学习下WinJS的使用和绑定。

    没注意到你之前将全部的type都改成了 ms-deferred/javascript, 这是不对的,我的意思是如果你是用的HTML片段在iframe中展现,那么这段HTML需要 用 ms-deferred/javascript 来引用。 而你不是的话不用引用成 ms-deferred/javascript。

    所以这么看来你的一开始的问题就在于 <script type="ms-deferred/javascript" src="/js/jquery.js"></script> 这一行导致了你的 jquery-ui-1.8.16.custom.js  未定义问题。

    你全部用默认的type 即不写type就好了。


    Bob Bao [MSFT]
    MSDN Community Support | Feedback to us

    2012年7月19日 9:50
    版主

全部回复

  • 你的这个错误是发生在 jquery-ui-1.8.16.custom.js中,请检查这个 jquery-ui-1.8.16.custom.js 使用前是否已引用了他所需要的所有js。这个问题并不是VS不支持,而是你可能没有注意 使用 jquery-ui-1.8.16.custom.js 的依赖关系。

    一般我们从 http://jqueryui.com/download 下载的jquery库的custom版本都会附带一个依赖的jquery,你检查是否版本相符,1.8.XX的应该支持jquery1.3.2+。千万不要为了使用而去添加,要注意其顺序和依赖关系,因为看到你的添加的库比较多且有点杂乱。

    还有需要注意的,如果你使用了HTML片段呈现页面,则需要用 ms-deferred/javascript 来引入js。


    Bob Bao [MSFT]
    MSDN Community Support | Feedback to us

    2012年7月19日 3:15
    版主
  • 非常感谢您的回复,可是我这个在web里运行非常完美但是封装的时候出了这些问题,重新引入了jquery1.7.2也没用,我是这么引入的代码您看一下对不对

        

    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="utf-8" />
        <title>App2</title>
        <!-- WinJS references -->
        <link href="//Microsoft.WinJS.1.0.RC/css/ui-dark.css" rel="stylesheet" />
        <script src="//Microsoft.WinJS.1.0.RC/js/base.js"></script>
        <script src="//Microsoft.WinJS.1.0.RC/js/ui.js"></script>

        <!-- App2 references -->
    <link href="/css/default.css" rel="stylesheet" />
    <link rel="stylesheet" href="/css/style.css"/>
    <link rel="stylesheet" href="/js/jquery.fancybox-1.3.4.css"/>
    <link rel="stylesheet" href="/css/jquery-ui-1.8.16.custom.css">
    <script src="/js/jquery.js"></script>
    <script src="/js/default.js"></script>
    <script type="text/javascript" src="/js/jquery-ui-1.8.16.custom.js"></script>
    <script type="text/javascript" src="/js/jquery.ui.core.js"></script>
    <script type="text/javascript" src="/js/jquery.effects.drop.js"></script>
    <script type="text/javascript" src="/js/jquery.wiggle.js"></script>
    <script type="text/javascript" src="/js/jquery.easing.1.3.js"></script>
    <script type="text/javascript" src="/js/jquery.countdown.js"></script>
    <script type="text/javascript" src="/js/jquery.fancybox-1.3.4.pack.js"></script>
    <script type="text/javascript" src="/js/jquery.mousewheel-3.0.4.js"></script>
    </head>

    以上是head部分引入的东西

    然后把我的游戏页面的HTML和CSS代码复制到default.html里面,把我游戏页面的JS代码复制到default.js里面的app.start();后面,报错的时候显示:

    Unhandled exception at line 50, column 5 in ms-appx://3724b001-ef16-4c96-b04a-2a0d89095e5c/js/default.js

    0x800a1391 - JavaScript 运行时错误: “$”未定义

    (那个line50就是default.js里边的$(documeng).ready那里,那个$就显示未定义了)

    麻烦帮忙解答一下,我还是一个学生对VS2012不是特别了解,明天就要展映了,万分感谢

    2012年7月19日 5:44
  • 你的这个错误是发生在 jquery-ui-1.8.16.custom.js中,请检查这个 jquery-ui-1.8.16.custom.js 使用前是否已引用了他所需要的所有js。这个问题并不是VS不支持,而是你可能没有注意 使用 jquery-ui-1.8.16.custom.js 的依赖关系。

    一般我们从 http://jqueryui.com/download 下载的jquery库的custom版本都会附带一个依赖的jquery,你检查是否版本相符,1.8.XX的应该支持jquery1.3.2+。千万不要为了使用而去添加,要注意其顺序和依赖关系,因为看到你的添加的库比较多且有点杂乱。

    还有需要注意的,如果你使用了HTML片段呈现页面,则需要用 ms-deferred/javascript 来引入js。


    Bob Bao [MSFT]
    MSDN Community Support | Feedback to us

    不好意思第一次用这个论坛,不知道要点引用才行,万分感谢
    2012年7月19日 5:45
  • 你的这个错误是发生在 jquery-ui-1.8.16.custom.js中,请检查这个 jquery-ui-1.8.16.custom.js 使用前是否已引用了他所需要的所有js。这个问题并不是VS不支持,而是你可能没有注意 使用 jquery-ui-1.8.16.custom.js 的依赖关系。

    一般我们从 http://jqueryui.com/download 下载的jquery库的custom版本都会附带一个依赖的jquery,你检查是否版本相符,1.8.XX的应该支持jquery1.3.2+。千万不要为了使用而去添加,要注意其顺序和依赖关系,因为看到你的添加的库比较多且有点杂乱。

    还有需要注意的,如果你使用了HTML片段呈现页面,则需要用 ms-deferred/javascript 来引入js。


    Bob Bao [MSFT]
    MSDN Community Support | Feedback to us

    不好意思第一次用这个论坛,不知道要点引用才行,万分感谢
    就是type都要用ms-deferred是吧~
    2012年7月19日 6:37
  • 你的这个错误是发生在 jquery-ui-1.8.16.custom.js中,请检查这个 jquery-ui-1.8.16.custom.js 使用前是否已引用了他所需要的所有js。这个问题并不是VS不支持,而是你可能没有注意 使用 jquery-ui-1.8.16.custom.js 的依赖关系。

    一般我们从 http://jqueryui.com/download 下载的jquery库的custom版本都会附带一个依赖的jquery,你检查是否版本相符,1.8.XX的应该支持jquery1.3.2+。千万不要为了使用而去添加,要注意其顺序和依赖关系,因为看到你的添加的库比较多且有点杂乱。

    还有需要注意的,如果你使用了HTML片段呈现页面,则需要用 ms-deferred/javascript 来引入js。


    Bob Bao [MSFT]
    MSDN Community Support | Feedback to us

    您好我刚刚按照您的方法把引用js的type修改了,这次不再报错而且可以成功生成APP,但是生成的APP中default.js中的JS代码完全没起到作用,就是没有了开场动画也没有了各种效果也没有了点击之后的效果,请问这个怎么解决,谢谢
    2012年7月19日 7:00
  • 能到达default.js断点吗? 你是否调用了  app.processAll(); 让你页面中的一些?具体的default.js的代码是怎么样的?


    Bob Bao [MSFT]
    MSDN Community Support | Feedback to us

    2012年7月19日 8:21
    版主
  • 能到达default.js断点吗? 你是否调用了  app.processAll(); 让你页面中的一些?具体的default.js的代码是怎么样的?


    Bob Bao [MSFT]
    MSDN Community Support | Feedback to us

    额我把default.js中的代码复制过来给您看吧

    // For an introduction to the Blank template, see the following documentation:
    // http://go.microsoft.com/fwlink/?LinkId=232509
    (function () {
        "use strict";

        var app = WinJS.Application;
        var activation = Windows.ApplicationModel.Activation;
        WinJS.strictProcessing();

        app.onactivated = function (args) {
            if (args.detail.kind === activation.ActivationKind.launch) {
                if (args.detail.previousExecutionState !== activation.ApplicationExecutionState.terminated) {
                    // TODO: This application has been newly launched. Initialize
                    // your application here.
                } else {
                    // TODO: This application has been reactivated from suspension.
                    // Restore application state here.
                }
                args.setPromise(WinJS.UI.processAll());
            }
        };

        app.oncheckpoint = function (args) {
            // TODO: This application is about to be suspended. Save any state
            // that needs to persist across suspensions here. You might use the
            // WinJS.Application.sessionState object, which is automatically
            // saved and restored across suspension. If you need to complete an
            // asynchronous operation before your application is suspended, call
            // args.setPromise().
        };

        app.start();
        //初始变量
        var level = 1;
        var time;
        var hp = 10;
        var minute = 1;
        var second = 60;
        var gradeused = 0;
        var gradethis = 0;
        var life = 3;
        var boss1_life = 10;
        var boss2_life = 20;
        var _inTime = [];
        var chang;
        var voice = true;
        var clickallowed = true;//能否点击,石头地鼠用
        var isRunning = false;//运行状态
        var decre;
        $(document).ready(function () {
            for (var i = 1; i <= 25; i++)//初始,让所有图片都隐藏
            { $("#image" + i).css("display", "none"); $("#mouse_boss1").hide(); $("#mouse_boss2").hide(); backpos(i); _inTime[i] = ""; }
            $("#effect").hide();
            function showList() {
                var selectedEffect = "drop"
                var options = {};
                $("#effect").toggle(selectedEffect, options, 500);
            };

    这样写有问题么~就是,从初始变量以后都是我自己写的,在线等您的回答了~


    2012年7月19日 8:28
  • 能到达default.js断点吗? 你是否调用了  app.processAll(); 让你页面中的一些?具体的default.js的代码是怎么样的?


    Bob Bao [MSFT]
    MSDN Community Support | Feedback to us

    没接触过VS2012和win8,不知道 app.processAll()是什么
    2012年7月19日 8:29
  • 能到达default.js断点吗? 你是否调用了  app.processAll(); 让你页面中的一些?具体的default.js的代码是怎么样的?


    Bob Bao [MSFT]
    MSDN Community Support | Feedback to us

    额我把default.js中的代码复制过来给您看吧

    // For an introduction to the Blank template, see the following documentation:
    // http://go.microsoft.com/fwlink/?LinkId=232509
    (function () {
        "use strict";

        var app = WinJS.Application;
        var activation = Windows.ApplicationModel.Activation;
        WinJS.strictProcessing();

        app.onactivated = function (args) {
            if (args.detail.kind === activation.ActivationKind.launch) {
                if (args.detail.previousExecutionState !== activation.ApplicationExecutionState.terminated) {
                    // TODO: This application has been newly launched. Initialize
                    // your application here.
                } else {
                    // TODO: This application has been reactivated from suspension.
                    // Restore application state here.
                }
                args.setPromise(WinJS.UI.processAll());
            }
        };

        app.oncheckpoint = function (args) {
            // TODO: This application is about to be suspended. Save any state
            // that needs to persist across suspensions here. You might use the
            // WinJS.Application.sessionState object, which is automatically
            // saved and restored across suspension. If you need to complete an
            // asynchronous operation before your application is suspended, call
            // args.setPromise().
        };

        app.start();
        //初始变量
        var level = 1;
        var time;
        var hp = 10;
        var minute = 1;
        var second = 60;
        var gradeused = 0;
        var gradethis = 0;
        var life = 3;
        var boss1_life = 10;
        var boss2_life = 20;
        var _inTime = [];
        var chang;
        var voice = true;
        var clickallowed = true;//能否点击,石头地鼠用
        var isRunning = false;//运行状态
        var decre;
        $(document).ready(function () {
            for (var i = 1; i <= 25; i++)//初始,让所有图片都隐藏
            { $("#image" + i).css("display", "none"); $("#mouse_boss1").hide(); $("#mouse_boss2").hide(); backpos(i); _inTime[i] = ""; }
            $("#effect").hide();
            function showList() {
                var selectedEffect = "drop"
                var options = {};
                $("#effect").toggle(selectedEffect, options, 500);
            };

    这样写有问题么~就是,从初始变量以后都是我自己写的,在线等您的回答了~


    后面还有好几百行代码,我就不全都复制了,只复制了一点儿
    2012年7月19日 8:30
  • 能到达default.js断点吗? 你是否调用了  app.processAll(); 让你页面中的一些?具体的default.js的代码是怎么样的?


    Bob Bao [MSFT]
    MSDN Community Support | Feedback to us

    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="utf-8" />
        <title>App2</title>
        <!-- WinJS references -->
        <link href="//Microsoft.WinJS.1.0.RC/css/ui-dark.css" rel="stylesheet" />
        <script type="ms-deferred/javascript" src="//Microsoft.WinJS.1.0.RC/js/base.js"></script>
        <script type="ms-deferred/javascript" src="//Microsoft.WinJS.1.0.RC/js/ui.js"></script>

        <!-- App2 references -->
    <link href="/css/default.css" rel="stylesheet" />
    <link rel="stylesheet" href="/css/style.css"/>
    <link rel="stylesheet" href="/js/jquery.fancybox-1.3.4.css"/>
    <link rel="stylesheet" href="/css/jquery-ui-1.8.16.custom.css">
    <script type="ms-deferred/javascript" src="/js/jquery.js"></script>
    <script type="ms-deferred/javascript" src="/js/default.js"></script>
    </head>

    这是default.html引用的部分,引用的其它插件被我放到底部去了

        
    2012年7月19日 8:37
  • 既然还没用到 processAll 那也没关系,问题与这个关系不大,可以忽略,以后有时间深入了你可以学习下WinJS的使用和绑定。

    没注意到你之前将全部的type都改成了 ms-deferred/javascript, 这是不对的,我的意思是如果你是用的HTML片段在iframe中展现,那么这段HTML需要 用 ms-deferred/javascript 来引用。 而你不是的话不用引用成 ms-deferred/javascript。

    所以这么看来你的一开始的问题就在于 <script type="ms-deferred/javascript" src="/js/jquery.js"></script> 这一行导致了你的 jquery-ui-1.8.16.custom.js  未定义问题。

    你全部用默认的type 即不写type就好了。


    Bob Bao [MSFT]
    MSDN Community Support | Feedback to us

    2012年7月19日 9:50
    版主
  • 既然还没用到 processAll 那也没关系,问题与这个关系不大,可以忽略,以后有时间深入了你可以学习下WinJS的使用和绑定。

    没注意到你之前将全部的type都改成了 ms-deferred/javascript, 这是不对的,我的意思是如果你是用的HTML片段在iframe中展现,那么这段HTML需要 用 ms-deferred/javascript 来引用。 而你不是的话不用引用成 ms-deferred/javascript。

    所以这么看来你的一开始的问题就在于 <script type="ms-deferred/javascript" src="/js/jquery.js"></script> 这一行导致了你的 jquery-ui-1.8.16.custom.js  未定义问题。

    你全部用默认的type 即不写type就好了。


    Bob Bao [MSFT]
    MSDN Community Support | Feedback to us

    如果不加 type="ms-deferred/javascript"的话就$未定义了。。哪个不加这个哪个就报错。。
    2012年7月19日 11:25
  • 全部去掉 type="ms-deferred/javascript",特别是 for JQuery 那个。  还有,建议你在processAll之后,或者在 app.onactivated 中处理你的逻辑。这个时候jquery会被加载,app.start() 只是说明app开始,但不意味这个页面被加载和处理了。

    或者你也可以在processAll().then(function(){  ...  })中处理:

        app.onactivated = function (args) {
            if (args.detail.kind === activation.ActivationKind.launch) {
                if (args.detail.previousExecutionState !== activation.ApplicationExecutionState.terminated) {
                    // TODO: This application has been newly launched. Initialize
                    // your application here.
                } else {
                    // TODO: This application has been reactivated from suspension.
                    // Restore application state here.
                }
                args.setPromise(WinJS.UI.processAll().then(function () {
                    //your code here
                }));
            }
        };


    Bob Bao [MSFT]
    MSDN Community Support | Feedback to us

    2012年7月20日 5:04
    版主