Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/428.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 jQuery调试功能在a";“类”;文件_Javascript_Jquery - Fatal编程技术网

Javascript jQuery调试功能在a";“类”;文件

Javascript jQuery调试功能在a";“类”;文件,javascript,jquery,Javascript,Jquery,我正在创建一个简单的游戏,我需要一些指导来调试一些数据。 我的HTML文件中有一个div,我希望他显示一些数据,这些数据在用户操作更改某些变量时会发生更改 例如,我得到了var xPosition,我想将数据发送到HTML中的一个div,这样我就可以看到xPosition的当前状态 我真的不知道从哪里开始创建这个函数 我的问题: 是否可以在此类中创建事件并注册一些 元素,它将显示所有更改的数据 我必须用定时器来做那种事吗 这就是“类”: (函数($){ $.Player=函数(元素){ this

我正在创建一个简单的游戏,我需要一些指导来调试一些数据。 我的HTML文件中有一个div,我希望他显示一些数据,这些数据在用户操作更改某些变量时会发生更改

例如,我得到了
var xPosition
,我想将数据发送到HTML中的一个div,这样我就可以看到
xPosition
的当前状态

我真的不知道从哪里开始创建这个函数

我的问题:

  • 是否可以在此类中创建事件并注册一些 元素,它将显示所有更改的数据
  • 我必须用定时器来做那种事吗
  • 这就是“类”:

    (函数($){
    $.Player=函数(元素){
    this.element=(element instanceof$)?element:$(element);
    此.movementspeed=10;
    this.size=$(元素).width();
    这个.xPos=0;
    这1.yPos=0;
    };
    $.Player.prototype={
    //注册事件
    InitEvents:function(){
    var=这个;
    $(文档).keydown(函数(e){
    var-key=e.which;
    如果(键==39){
    那.右移(400),;
    }否则如果(键==37){
    那。向左移动();
    }
    });
    this.element.css({
    左:this.xPos
    });
    },
    //运动功能
    moveRight:函数(worldWidth){
    如果((this.xPos+this.size)0){
    this.xPos-=this.movementspeed;
    this.element.css(“left”、'-='+this.movmentSpeed);
    }
    }
    };
    }(jQuery));
    
    以下是HTML:

    <div id="player">
    <div id="debugData"> <div>
    <script>
    var player = new $.Player($("#player"));
            player.InitEvents();
    
    </script>
    
    
    var player=新的$.player($(“#player”);
    player.InitEvents();
    
    (对不起我的英语)

    我认为在类中有一个内部函数会有所帮助。甚至可以设置通过执行
    player.logging=true打开日志记录,并将其默认为false

    在原型中,只需为
    logging=false
    添加一个公共原型变量,以及我们的原型函数
    log()

    您可以使用的内部功能可以很简单:

        logging : false, // our default
    
        log : function (str) {
            if (this.logging) {
                $('#debugData').html(str);
            }
        },
    

    这样您就可以离开
    日志(This.xPos)(或任何您想要记录的内容)并删除
    player.logging=true当你实例化你的类时,它们不会出现,除非你把代码放回原处。

    你可以编写setter来更改你感兴趣的变量。这样你就可以实时记录你需要的任何东西:)是一个好主意,但我真的想在HTML上这样做有两个原因。1.更容易阅读。我想学习如何做到这一点:)通过日志记录,我的意思是附加到调试div.intresting,我不知道您可以做到这一点。(如果不是那么难)你能给我看一个简单的代码示例吗?搜索jQuery append:)这给了我想要的东西,但我不确定把它放在我的类的什么地方。我想按照您的建议保持函数私有,但这样做不允许我在函数中使用类(this)变量。我应该把它放在哪里才能看到日志私有变量和公共变量?(感谢帮助:))还通过演示更新了答案!希望这能解决问题,我会用类似的方式来解决,但你的好得多!非常感谢。
        logging : false, // our default
    
        log : function (str) {
            if (this.logging) {
                $('#debugData').html(str);
            }
        },