Javascript 位置变量无法正确更新

标签 javascript jquery variables position updating

在过去的 3 个小时里,我一直坐在这里思考并搜索一种方法,让矩形(div 元素)在按下按钮时来回移动(使用 javascript)。它正在移动,但后来我试图监控碰撞,但没有成功。它说完全是垃圾,所以我将代码简化为:

$(document).on('keyup', function(e){
    var SQposition = $("#SQbody").position();
    var SQleft = SQposition.left;
    var SQtop = SQposition.top;
    //Go left D or left arrow key
    if(e.keyCode == 68 || e.keyCode == 39) {
        console.log("Fired");
        $("#SQbody").css({
            "left": (SQleft + 10) + "px",
        });
    }
});

无论我在哪里监视变量SQleft,它总是会触发 0,然后显然是 10,依此类推。奇怪的是,使用像 console.log("Fired"); 这样的东西从 1 开始,然后是 2,依此类推。
我做错了什么?

更新:“向左走”的意思是“向右走”,我编码时是凌晨 3 点 xD

解决方案:我自己解决了这个问题,方法是将+=放入括号中 并将变量 SQleft 记录到控制台后返回。 工作代码如下所示:

$(document).on('keyup', function(e){
    var SQposition = $("#SQbody").position();
    var SQleft = SQposition.left;
    var SQtop = SQposition.top;
    if(e.keyCode == 68 || e.keyCode == 39) {
        $("#SQbody").css({
            "left": (SQleft += 10) + "px",
        });
        console.log("Fired " + SQleft);
        return SQleft;
    }
});

最佳答案

http://codepen.io/p2227/pen/GppvOE

它是否错过了position:absolute;??

关于Javascript 位置变量无法正确更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32514194/

相关文章:

javascript - has()为多维数组集返回false?

javascript - 当某些 dom 元素改变高度时的 jQuery 事件

jquery - 仅在按键按下时运行 CSS 转换 - jQuery

Php 从 URL 获取哈希值

bash - 如何在变量中使用变量?

Python:局部变量神秘地更新全局变量

javascript - 更改 ReactJs 中不直接处理事件的组件的状态

javascript - 从 Jenkins 下载 zip

javascript - 生成范围 (0 - X) 内的唯一编号,保留历史记录以防止重复

javascript - 弹出窗口被阻止,第二次点击它不再被阻止