0

このコードは JavaScript で記述しましたが、JQuery を使用して動作させる必要があります。JavaScript 関数と jquery 試行の両方を含めましたが、jquery 試行の何が問題なのかわかりません。誰か助けてください。

Javascript の動作:

function done()
{
    var valid = document.getElementById("text2").value.length;
    if (valid > 5)
    {
        document.getElementById('one').innerHTML += "<div class='done rotateone wiggler'></div>";
        document.getElementById('one').className += "grey";
    }

Jquery 試行:

$(document).ready(function(){
    //Validates the title field is at least 5 characters long.
    $("#text2").done(function(){
        var value = $(this).val();
        if (value.length >= 5)
        {
            $("#one").append("<div class='done'></div>");
        }
    });
4

2 に答える 2

0

関数をすぐに実行したいですか?(編集を見て、.blur()イベント ハンドラーを追加した理由を確認してください)

$(document).ready(function() {
    $('#text2').blur(function() { // Listen to the "onblur" event on the element
        if (this.value.length > 5) { // No need for jQuery there
            $('#one')
                .append('<div class="done"></div>')
                .addClass('grey')
        }
    })
})

単一の要素で関数をチェーンすることにより、DOM への 1 つの呼び出しのみを使用する方法を参照してください。それは実用的で効率的です。

ところで、innerHTML は多くの理由 (パフォーマンス.append()を含む) で良くなく、jQuery と.appendChild()JavaScriptで好まれます。

onblur編集:これをイベントでアクティブにしたいようです。コードを編集しました。

于 2012-04-04T09:29:21.487 に答える
0

関数を使用してdone()小さな変更を加えるだけで jQuery を適応させる ことができます

function done()
{
    var valid = $("#text2").val().length;
    if (valid > 5)
    {
        $('#one').append("<div class='done'></div>");
        $('#one').addClass("grey");
    }
}
于 2012-04-04T09:08:11.357 に答える