javascript - "class"文件中的 jQuery 调试功能

标签 javascript jquery

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

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

我真的不知道从哪里开始创建这个功能。

我的问题:

  1. 是否可以在此类中创建事件并注册一些 将显示所有变化数据的元素?
  2. 我必须为这类事情使用一些计时器吗?

这是“类”:

(function ($) {
    $.Player = function (element) {
        this.element = (element instanceof $) ? element : $(element);
        this.movmentSpeed = 10;
        this.size = $(element).width();
        this.xPos = 0;
        this.yPos = 0;
    };


    $.Player.prototype = {
        //register events
        InitEvents: function () {
            var that = this;
            $(document).keydown(function (e) {
                var key = e.which;
                if (key == 39) {
                    that.moveRight(400);
                } else if (key == 37) {
                    that.moveLeft();
                }
            });

            this.element.css({
                left: this.xPos
            });
        },

        //movment functions
        moveRight: function (worldWidth) {
            if ((this.xPos + this.size) <= worldWidth) {
                this.xPos += this.movmentSpeed;
                this.element.css("left", '+=' + this.movmentSpeed);
            }
        },
        moveLeft: function () {
            if (this.xPos > 0) {
                this.xPos -= this.movmentSpeed;
                this.element.css("left", '-=' + this.movmentSpeed);
            }
        }
    };

} (jQuery));

这里是 HTML:

<div id="player">
<div id="debugData"> <div>
<script>
var player = new $.Player($("#player"));
        player.InitEvents();

</script>

(对不起我的英语)

最佳答案

jsFiddle Demo

我想说在类中有一个内部函数会有所帮助。甚至可以通过执行 player.logging = true; 并让它默认为 false;

来设置你打开日志记录

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

您可以使用的内部函数可以像这样简单:

    logging : false, // our default

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

通过这种方式,您可以在代码中留下您的log(this.xPos);(或您想要记录的任何内容),并通过删除播放器.logging = true; 当你实例化你的类时,它们不会出现,直到你把代码放回去。

关于javascript - "class"文件中的 jQuery 调试功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14448719/

相关文章:

javascript - document.execCommand 在 Firefox 和 IE 中不起作用

javascript - Jquery 选项卡 : change ajax data on tab click

javascript - 如何将重音字符从 JavaScript 传递到 HTML?

javascript:使用单位获取css prop值

php - JQuery 乘以输入值并保存数据(codeigniter)

javascript - 确定 Chrome 中当前 DOM 元素状态

javascript - 使用 jquery、froogaloog 和 wordpress 控制 Vimeo iframe 时遇到问题

javascript - 在服务器端访问 jQuery 控件?

jQuery filter() - 对多个属性进行过滤

javascript - 如何从jquery中的任何选定对象获取属性