首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ajaxComplete多次点火

ajaxComplete多次点火
EN

Stack Overflow用户
提问于 2015-03-25 11:02:52
回答 1查看 1K关注 0票数 2

我目前有一个问题,在我的网站上的一段代码,使用ajaxComplete和它不断发射多次。

这里有一些关于实际系统的背景信息。我已经为wordpress开发了一个小插件,它允许您输入开始日期、结束日期和参考代码号。当您进入指定课程时,您可以添加、编辑和删除这些字段。

编辑部分是我当前遇到问题的地方,当我编辑现有的课程日期时,我的代码逻辑获取该记录的数据并将其直接从数据库传送到表单。

我遇到的问题是,当我按下编辑按钮对该记录的开始日期、结束日期和课程引用进行修改时,ajaxComplete请求会继续触发,结果会刷新输入并再次获取默认数据,并在5-7秒内将其添加回来。这没有给我足够的时间来编辑开始日期,结束日期和课程代码,然后按下“更新”,因为字段继续回到默认状态。

我能阻止这一切发生吗?

代码语言:javascript
复制
$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 + '" /> &nbsp; <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 + '" /> &nbsp; <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 + '" /> &nbsp; <a href="#" id="update-date-' + json.course_date_id + '" class="button update-date" rel="' + json.course_date_id + '">Update</a> &nbsp; <a href="#" class="cancel-edit">Cancel</a>'

                        $j(this).html(form);

                    });

                }

            });

            return false;

        });
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-03-25 11:29:33

使用下面的代码。您已经处于成功函数中,因此不需要添加ajaxComplete请求。

代码语言:javascript
复制
          $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 + '" /> &nbsp; <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 + '" /> &nbsp; <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 + '" /> &nbsp; <a href="#" id="update-date-' + json.course_date_id + '" class="button update-date" rel="' + json.course_date_id + '">Update</a> &nbsp; <a href="#" class="cancel-edit">Cancel</a>'

                    $j("#dates").html(form);
            }

        });
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29253850

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档