さて、紳士、ここに問題があります。domの読み込み以降に投稿された可能性のある新しいコメントを読み込むために、自分のWebサイトで(ajaxを使用して)自動更新を実行しています。新しいコメントがajax呼び出しでロードされるため、スクリプトは正常に機能します。ただし、jqueryを使用したfadeInの呼び出しからの応答が必要です。$(response).hide().prependTo('.ideas').fadeIn('slow');
私は他の場所でこのコードを使用していますが、正常に機能します。このメソッドを使用しているため、他の場所でも機能すると思います.on()
が、イベントを発生させるためにユーザーアクションを使用していないため、ここでは使用できません。
現在のコードは次のとおりです。
setInterval(function() {
if (window.location.pathname == "/" || window.location.pathname == "/appreciate" || window.location.pathname == "/appreciate#") {
var first_message = $('.messages > div.message_wrapper:first').attr('id');
var pathname = window.location.pathname;
$.ajax({
type: "POST",
url: "/update_comments.php",
data: {first_message: first_message, pathname: pathname},
success: function (response) {
$(response).hide().prependTo('.messages').fadeIn(2000);
}
});
} else {
var first_idea = $('.ideas > div.message_wrapper:first').attr('id');
$.ajax({
type: "POST",
url: "/update_comments.php",
data: {first_idea: first_idea, pathname: pathname},
success: function (response) {
$(response).hide().prependTo('.ideas').fadeIn(2000);
}
});
}
}, 20000);
何かご意見は?私はlivequeryの使用を検討しましたが、livequeryが検索するjqueryメソッドを定義できることを他の場所で見たので、これをコードに入れましたが、 $.livequery.registerPlugin('append', 'prepend', 'after', 'before', 'wrap', 'attr', 'removeAttr', 'addClass', 'removeClass', 'toggleClass', 'empty', 'remove', 'appendTo', 'prependTo');
何もしませんでした。