好吧,我有两个带有 keyup 事件的输入字段,这是 js
$(document).ready(function() {
is_draft_started = 0;
$(":input").keyup(function() {
if(is_draft_started == 0) {
s2 = setInterval('draft("' + frm_name + '")', auto_save_time);
is_draft_started = 1;
}
});
setInterval调用函数草稿
var frm_name = 'myform';
var auto_save_time = 1000 * <?php echo AUTO_SAVE_TIME?>;
<?php if($_GET["uid"] != "" && isset($_GET["uid"])): ?>
var id_draft = '<?php echo $draft->id?>';
<?php else: ?>
var id_draft = 0;
<?php endif; ?>
function draft(forma_name) {
if(id_draft == 0) {
$.post("?c=licnePoruke&f=slanje&pk=<?php echo $pk?>&saveDraft=1", $("[name=" + forma_name + "]").serialize(),
function(data) {
id_draft = data;
$('#draft_id').val(id_draft);
last_save_time();
});
}
else {
$.post("?c=licnePoruke&f=slanje&pk=<?php echo $pk?>&updateDraft=" + id_draft, $("[name=" + forma_name + "]").serialize(),
function(data) {
last_save_time();
});
}
return false;
}
但不知何故,在草稿函数中,首先 if 被调用两次,无法弄清楚为什么。对我的问题有任何帮助
最佳答案
您应该使用setTimeout
而不是setInterval
,后面的函数每次遇到auto_save_time时都会执行回调(如draft
),比如 1000 毫秒、2000 毫秒、3000 毫秒......
关于javascript - SetInterval 和输入字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28063326/