我目前有一个问题,在我的网站上的一段代码,使用ajaxComplete和它不断发射多次。
这里有一些关于实际系统的背景信息。我已经为wordpress开发了一个小插件,它允许您输入开始日期、结束日期和参考代码号。当您进入指定课程时,您可以添加、编辑和删除这些字段。
编辑部分是我当前遇到问题的地方,当我编辑现有的课程日期时,我的代码逻辑获取该记录的数据并将其直接从数据库传送到表单。
我遇到的问题是,当我按下编辑按钮对该记录的开始日期、结束日期和课程引用进行修改时,ajaxComplete请求会继续触发,结果会刷新输入并再次获取默认数据,并在5-7秒内将其添加回来。这没有给我足够的时间来编辑开始日期,结束日期和课程代码,然后按下“更新”,因为字段继续回到默认状态。
我能阻止这一切发生吗?
$j("a.edit-date").live("click", function(e) {
e.preventDefault;
var target = $j(this);
var postData = {};
postData['data[_course-date-id]'] = target.attr('rel');
postData['data[_course-post-id]'] = <?php echo $post->ID; ?>;
postData['data[_cancel-edit]'] = 'no';
$j.ajax({
type: "POST",
url: "<?php echo get_bloginfo('stylesheet_directory'); ?>/code/module-courses-edit-date.php",
data: postData,
success: function(msg) {
$j("#dates").ajaxComplete(function(event, request, settings) {
result = msg;
var json = $j.parseJSON(result)
var form = '<label>Edit the date below and hit update</label><br /><input type="text" class="course-start-date" name="_course-start-date" id="_course-start-date-' + json.course_date_id + '" placeholder="Start Date" value="' + json.course_start_date + '" /> <input type="text" class="course-end-date" name="_course-end-date" id="_course-end-date-' + json.course_date_id + '" placeholder="End Date" value="' + json.course_end_date + '" /> <input type="text" class="course-date-reference" name="_course-date-reference" id="_course-date-reference-' + json.course_date_id + '" placeholder="CDC 01" size="5" value="' + json.course_date_reference + '" /> <a href="#" id="update-date-' + json.course_date_id + '" class="button update-date" rel="' + json.course_date_id + '">Update</a> <a href="#" class="cancel-edit">Cancel</a>'
$j(this).html(form);
});
}
});
return false;
});发布于 2015-03-25 11:29:33
使用下面的代码。您已经处于成功函数中,因此不需要添加ajaxComplete请求。
$j.ajax({
type: "POST",
url: "<?php echo get_bloginfo('stylesheet_directory'); ?>/code/module-courses-edit-date.php",
data: postData,
success: function(msg) {
var json = $j.parseJSON(msg);
var form = '<label>Edit the date below and hit update</label><br /><input type="text" class="course-start-date" name="_course-start-date" id="_course-start-date-' + json.course_date_id + '" placeholder="Start Date" value="' + json.course_start_date + '" /> <input type="text" class="course-end-date" name="_course-end-date" id="_course-end-date-' + json.course_date_id + '" placeholder="End Date" value="' + json.course_end_date + '" /> <input type="text" class="course-date-reference" name="_course-date-reference" id="_course-date-reference-' + json.course_date_id + '" placeholder="CDC 01" size="5" value="' + json.course_date_reference + '" /> <a href="#" id="update-date-' + json.course_date_id + '" class="button update-date" rel="' + json.course_date_id + '">Update</a> <a href="#" class="cancel-edit">Cancel</a>'
$j("#dates").html(form);
}
});https://stackoverflow.com/questions/29253850
复制相似问题