-2

これが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;
}​
4

2 に答える 2

3

問題が要素が動かないことであると仮定すると(質問で問題を明確にしていません)、その理由は要素が正しく配置されていないことです。

CSSにposition: absoluteまたはを追加します。position: relative

これが更新された fiddleです。

于 2012-06-10T14:52:52.860 に答える
0

コード内の関数を削除し、関数を関数に置き換える必要がありalertます。.live.keydown

于 2013-02-19T06:24:34.393 に答える