1

ユーザーがラジオ ボタンを変更すると、テーブルの行として更新メッセージを追加します。メッセージが追加されると、ページが既に読み込まれた後に追加されたため、思ったような機能がありませんでした。次に、事後に追加された要素がページに読み込まれた要素と同じ機能を持つように見える livequery プラグインを見つけました。

クリック フェードアウト() は正しく機能していますが、追加されたばかりのテーブル行で setTimeout() の構文を理解できないようです。私は現在の構文が正しくないことを知っており、イライラした時点でそれを残しました。

<script>
  $(document).ready(function(){  
    $("input[@name='optInOut']").change(function(){
        $('#tblUpdates').append('<tr class="msgUpdate"><td colspan="2">added message0</td><td align="right"><img src="../Images/CCC/12-em-cross.png" class="imgClose" alt="close message" title="close message" /></td></tr>');
    });

    setTimeout($.livequery.function() {  
        $('.msgUpdate').fadeOut('normal');  
        }, 1000); // <-- time in milliseconds
    });

    $('img.imgClose').livequery('click', function(){
        $(this).parent().parent().fadeOut('normal');
  }); 
</script>

より多くの情報を提供する必要がある場合は、そのように努めます。ご協力をよろしくお願いいたします。

4

4 に答える 4

2

まず、ここでこのビット

     $('img.imgClose').livequery('click', function(){
        $(this).parent().parent().fadeOut('normal');
}); 
</script>

する必要があります

     $('img.imgClose').livequery('click', function(){
        $(this).parent().parent().fadeOut('normal');
     });//<--- closes the livequery call
});//<--- closes document.ready
</script>

第二に、fadeOut には livequery を使用しないことをお勧めしますが、使用する場合は、次の構文を使用します。

setTimeout($.livequery.function() {  
        $('.msgUpdate').fadeOut('normal');  
        }, 1000); // <-- time in milliseconds
    });

次のようにする必要があります。

$.livequery(function(){
  setTimeout(function(){
     $('.msgUpdate').fadeOut('normal'); 
  },1000);
});
于 2009-10-15T21:46:42.297 に答える
0

window.setTimeoutを呼び出す必要はありませんか?それが必要かどうかはわかりませんが、試してみる価値があるかもしれません。

于 2009-10-15T19:28:56.530 に答える
0

jQuery の最新版 (1.3.X) では、livequery プラグインを使用する必要はありません。$("div").live("click",etc... を使用できます。

jQuery の新しいライブ機能を見れば、Javascript をクリーンアップして、より理解しやすくなるかもしれないと思います。

于 2009-10-15T20:03:46.087 に答える
0

setTimeout の目的が、ページが読み込まれたときに存在していた要素をフェードさせることである場合は、livequery を使用する必要はありません。

setTimeout("$('.msgUpdate').fadeOut('normal');", 1000);
于 2009-10-15T20:47:52.920 に答える