键入后的jQuery自动保存文本区域

时间:2016-01-09 作者:Taberkinslaw

我正在尝试学习如何使用jQuery,并操作一些现有代码来完成我需要它做的事情。我想编辑此代码,使可编辑内容文本区域在用户输入信息后保存一定的秒数,而不是在“单击”时保存。

在我的搜索过程中,我在这方面找到了一些不同的资源,但是,没有一个对我的现有代码有用。或者我可能只是不理解如何将其与代码结合起来。我试过了.keyup, .keypress, .ready 还有我搜索的其他人。

我有一个和.on 事件,但它在实现后在我的站点中创建了大量错误。-现在我再也找不到那个代码片段了。

非常感谢您的帮助!

当前代码:

jQuery(function ($) {



            $(".save").click(function (e) {

                var mid=$(this).attr(\'data\');

                var tid=\'#\'+mid;

                $(tid).jqte({"status" : false});

            var content = $(tid).html();    

           $(tid).jqte({"status" : true});



            $.ajax({

                dataType:\'JSON\',

                url: contentedit.ajaxurl,

                type: \'POST\',

                data: {

                    action:"contentedit_ajax",

                  content: content,

                  mid:mid

                },              

            });   



  });
PHP代码部分(使用按钮单击当前保存)

<div class=\'abhi_content\'><div id=\'".$putid."\' class=\'abhi_editable\' contentEditable=\'true\'>".$edit[0][\'editedcontent\']."</div><button style=\'display: none;\' id=\'".$putid."_save\' class=\'save\' data=\'".$putid."\'>Save</button>

1 个回复
SO网友:WPTC-Troop

我不确定你的ID是什么。让as假设ID为example 这是代码

jQuery(function($) {
    $(\'#example\').on(\'keyup\', function() {
        if(autosave_timer) {
        clearTimeout(autosave_timer);
          }
        autosave_timer = setTimeout(save_by_ajax, 3000); 
// after 3 second of keyup save_by_ajax function will execute
    });

   function save_by_ajax(){
   var mid=$(this).attr(\'data\');

                var tid=\'#\'+mid;

                $(tid).jqte({"status" : false});

            var content = $(tid).html();    

           $(tid).jqte({"status" : true});



            $.ajax({

                dataType:\'JSON\',

                url: contentedit.ajaxurl,

                type: \'POST\',

                data: {

                    action:"contentedit_ajax",

                  content: content,

                  mid:mid

                },              

            });   

    }

});
您的$putid 不会打印,因为它不在php标记内。所以要么ID 手动或正确使用php打印。

如果用户继续键入而没有3秒钟的间隔,我将清除该函数。因此,这可以避免服务器过载。NO 在用户空闲3秒钟之前,可以进行ajax调用