我正在尝试学习如何使用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>
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调用