我认为最简单的方法是用我所拥有的图像来解释它。
摘要 - 我有一个提交帖子的表单(很像你在 twitter 上找到的)。在每个帖子中都有一个<ol>
对该帖子的评论将驻留的位置。
问题 - 当我提交第一个评论(图片中的按钮提交 2)时,它不会调用 ajax,只是转到一个页面,它会向我显示评论的 php 输出。似乎它没有重新加载或将 DOM 事件应用到该部分代码。如果我返回,则会显示评论(因为它会刷新页面),并且在添加第二条评论时,一切正常,正如预期的那样。问题只是第一条评论。
流程 - 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');
}
});