0

基本的に、Windows 8 JavaScript + jQuery アプリ用の MS Visual Studio 2012 にこのコードがあります。

<script>

    window.setInterval(function () {

        var currentx = $(".ball").css("left");
        var currenty = $(".ball").css("top");


        $(".ball").css("top", currentx + 1);
        $(".ball").css("left", currenty + 1);

        //debug
        var time=1;
        $("p.test").text("Has been called " +time);
        var time=time+1;

    }, 100);

</script>

はい、jQuery 2.0 を使用しています

ここで、API をhttp://www.w3schools.com/js/js_timing.asphttp://api.jquery.com/css/で確認しました。

私のコードはコンパイルされますが、ボールの位置が更新されません。一度だけ呼び出されているようです。それが助けになるなら、ボールはDIV要素です。Windows 8 アプリは DOM 操作を完全にはサポートしていないか、Window グローバル変数だけをサポートしているのかもしれませんが、私にはよくわかりません。

クラス ボールの上部と左側の CSS ルールのこの要素を設定された間隔で更新するという目標を達成するには、どのコードが必要ですか?

4

1 に答える 1

1

.css("left").css("top")数値ではなく文字列 (例: )を返す0pxので、それを解析する必要があります。parseIntcurrentx + 10px1

timeまた、コールバックでが定義されて 1 に設定されているため、一度しか呼び出されないように見えます。setIntervalコールバックの外で定義して初期化する必要がありますsetInterval

の代わりに、.css("left")を使用することも考えられます.position().left

(function() {
    var time=1;
    window.setInterval(function () {

            var currentx = parseInt($(".ball").css("left"),10); 
            var currenty = parseInt($(".ball").css("top"),10);


            $(".ball").css("top", currentx + 1);
            $(".ball").css("left", currenty + 1);

            //debug

            $("p.test").text("Has been called " +time);
            time=time+1;

    }, 100);
})();
于 2013-05-02T06:14:38.770 に答える