用箭头键jquery移动元素

时间:2012-06-10 14:48:18

标签: javascript jquery

有人可以告诉我为什么这不起作用jsfiddle Code

JavaScript的:

$(document).ready(function() {
        $(document).live("keydown", KeyOperation);
});

function KeyOperation(e)
{
    alert("in");
    var top = $(".move").offset().top;
    var left = $(".move").offset().left;
    var IncrementBy = 10;

    if (e.which == 37) {
        $(".move").css({ left: left - 10 });
    }
    else if (e.which == 38) {
        $(".move").css({ top: top - IncrementBy });
    }
    else if (e.which == 39) {
        $(".move").css({ left: left + IncrementBy });
    }
    else if (e.which == 40) {
        $(".move").css({ top: top + IncrementBy });
    }
}​

HTML:

<div class="move"></div>​

CSS:

.move
{
    width: 100px;
    height:100px;
    border:1px solid red;
}​

2 个答案:

答案 0 :(得分:3)

假设问题是元素没有移动(你的问题并没有真正解决问题),原因是元素定位不正确。

position: absoluteposition: relative添加到您的CSS中。

这是一个updated fiddle

答案 1 :(得分:0)

您需要删除代码中的alert函数,并将.live函数替换为.keydown函数。