2015-01-21 81 views
0

好吧,我有keyup事件两个输入字段,这是JS的setInterval和输入字段

$(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; 
    } 

但不知何故,在草稿功能第一,如果叫两次,不知道为什么。我的问题任何帮助

回答

1

您应该使用的setTimeout代替setInterval,在后来的功能执行回调(如draft)与每一个见到的auto_save_time,像1000毫秒,2000毫秒,3000ms时间.......