setTimeout函数在if else条件下无效 - Jquery

时间:2016-05-16 12:10:00

标签: javascript jquery ajax

我有这样的代码:

var saveToDB;
if ($('.new_article')[0]) {
  saveToDB = function() {
    var form;
    form = $('.new_article');
    $.ajax({
      url: '/admin/articles',
      type: 'POST',
      data: form.serialize(),
      beforeSend: function(xhr) {
        $('.form-status-holder').html('Saving...');
      },
      success: function(data) {
        var jqObj;
        jqObj = jQuery(data);
        $('.form-status-holder').delay(5000).hide();
      }
    });
  };
  $('form input, form textarea').on('input propertychange change', function() {
    var timeoutId;
    clearTimeout(timeoutId);
    return timeoutId = setTimeout((function() {
      saveToDB();
    }), 5000);
  });
  return;
} else if ($('.edit_article')[0]) {
  saveToDB = function() {
    var form, id;
    form = $('.edit_article');
    id = (form.attr('action')).split("/").pop(-1);
    $.ajax({
      url: '/admin/articles/' + id,
      type: 'POST',
      data: form.serialize(),
      beforeSend: function(xhr) {
        $('.form-status-holder').html('Saving...');
      },
      success: function(data) {
        var jqObj;
        jqObj = jQuery(data);
        $('.form-status-holder').delay(5000).hide();
      }
    });
  };
  $('form input, form textarea').on('input propertychange change', function() {
    var timeoutId;
    clearTimeout(timeoutId);
    return timeoutId = setTimeout((function() {
      saveToDB();
    }), 5000);
  });
  return;
}

我在setTimeout条件下遇到if函数时出现问题,但无法在saveToDB内调用setTimeout。我需要几个小时才能找到问题的根源,但现在我仍然陷入困境。 else条件中的第二个file:///android_asset/www/path/to/my.mp3函数可以正常工作。有帮助吗?提前谢谢。

0 个答案:

没有答案