私が持っているもののイメージで説明するのが最も簡単な方法だと思いました。
まとめ - 投稿を送信するためのフォームがあります (Twitter にあるものとほとんど同じです)。各投稿内には、<ol>
その投稿へのコメントが存在する場所があります。
問題 - 最初のコメントを送信すると (図の送信ボタン 2)、ajax が呼び出されず、コメントの php 出力が表示されるページに移動します。コードのその部分にDOMイベントをリロードまたは適用していないようです。戻ると、コメントが表示され(ページが更新されるため)、2番目のコメントを追加すると、期待どおりにすべて正常になります。問題は最初のコメントだけです。
フロー - 1) 新しい投稿を挿入 2) テキストエリアをクリックし、テキストを入力して送信を押します 3) コメントの PHP 出力が表示されるページにジャンプします 3a) ajax 呼び出しは行われません。コードに入ることはありません
何が起こっているのか理解するのを手伝ってくれませんか? 前もって感謝します。
さらにコードが必要な場合は、教えてください。
JS (post_comment.js - 写真の送信 2 に関連付けられています。私は ajaxForm - jquery フォーム プラグインを使用していますが、標準の .ajax 呼び出しでも試してみましたが、結果は同じです)
$(function () {
var options = {
success: function (html) {
var arrHTML = html.split(',');
var postId = $.trim(arrHTML[0]);
var html_code = arrHTML[1];
$('ol#post_comment_list' + postId).load(html_code);
//$('ol#post_comment_list'+postId 'li:first').slideDown('slow');
$('.footer-post').hide();
$('.comments-feed').delay(2000).slideUp({
duration: 1000,
queue: true
});
$('.small-textarea-main-feed').removeClass('set-large');
resetForm($('.footer-comment'));
},
error: function () {
alert('ERROR: unable to upload files');
},
complete: function () {
},
};
$(".footer-comment").ajaxForm(options);
function ShowRequest(formData, jqForm, options) {
var queryString = $.param(formData);
alert('BeforeSend method: \n\nAbout to submit: \n\n' + queryString);
return true;
}
function resetForm($form) {
$form.find('input:text, input:password, input:file, select, textarea').val('');
$form.find('input:radio, input:checkbox')
.removeAttr('checked').removeAttr('selected');
}
});