0

私はこのコードを持っています:

    $('#foo').click(function () {

       var xyz = $('#foo2').val().length;

    if(xyz < 1) {

        $('#msg').html('<div id="error">error</div>').delay(3000).fadeOut(1000);

    } else ......

そして、私はこの行に問題があります:

$('#msg').html('<div id="error">error</div>').delay(3000).fadeOut(1000);

xyz が 0 の場合はエラー メッセージが表示されますが、問題は 1 回しか機能せず、複数回機能する必要があるため、2 回目、3 回目、4 回目などをクリックするとポップアップが表示され、クリア/リセットする方法はありますか。 html() を再度使用できるようにしますか?

4

5 に答える 5

3

クリア/リセットする必要はありません。あなたがする必要があるのはそれを示すことだけです。

$('#msg').html('<div id="error">error</div>').show().delay(3000).fadeOut(1000);

.html()使用.empty()する前に内部で使用するinnerHTML

于 2012-08-01T21:06:12.163 に答える
1

.html()をクリア/リセットする方法はありますか

はいあります。.empty()を使用します

于 2012-08-01T21:04:57.157 に答える
0
$('#msg').empty().html('<div id="error">error</div>').show().fadeOut(1000);
于 2012-08-01T21:08:35.283 に答える
0
$('#msg').html('<div id="error">error</div>').delay(3000).fadeOut(1000, function(){
    $(this).empty()
})
于 2012-08-01T21:07:11.763 に答える
0

問題は、div をフェードアウトすること.html()ではありません。現在は非表示になっています。.fadeOut()( display:none;)。フェードアウトするには、もう一度表示する必要があります。

メッセージを非表示にした後、呼び出してコンテンツをクリアし.empty()、再度表示することができます。または、回線を呼び出して遅延/フェードする前に表示することもできます。

$('#foo').html('<div id="error">error</div>').show().delay(1000).fadeOut(1000);

ここにデモがあります

于 2012-08-01T21:07:17.150 に答える