1

私は温度計をやっていて、温度計のアニメーションに取り組んでいます。私はそれを行うためのこのjavascriptメソッドを持っています:

function setScoreBar(score) {
    var scoreBar = document.getElementById("dynamicScoreBar");
    // var scoreBar = $(scoreBarElem);
    var height = 250;
    height = height - 20;
    var percentage = height / 100;
    scoreBar.find(".meter").animate({
         marginTop: (height - (score * percentage)) + "px"
    }, 400, function() {
        scoreBar.find(".meter").html(score + "%");
    });
}

私のhtmlは次のようになります

<div id="dynamicScoreBar" class="scoreBar">
    <div class="meter">0%</div>
    <div class="red"></div>
</div>

デバッグすると、.find メソッドと .animate メソッドが存在しないというエラーが表示されます。しかし、私がそれを書こうとすると、ビジュアルスタジオから助けが得られ、それを使用するオプションが表示されるので、存在するはずです:P何か他のものを使用できますか? または、構文が間違っていますか?

4

1 に答える 1

5

.findおよび.animatejQuery 関数です。scoreBarが jQuery オブジェクトの場合に存在します。で代入した場合ではありませんdocument.getElementByIdgetElementById純粋な JavaScript 関数であり、DOM ノードを返します。

jQuery フレームワークを使用している場合は、任意の DOM ノードを でラップして jQuery オブジェクトに変換できます$(...)。特定のシナリオでは、変数の割り当てを完全に書き直すことができます。

var scoreBar = $('#dynamicScoreBar');

...変数は、および関数が使用可能なscoreBarjQuery オブジェクトになります。findanimate

于 2013-07-25T07:37:18.207 に答える