2013-03-26 187 views
0

你好,再次SO社区。jQuery功能不能正常工作

有什么不对的一段代码:

(function ($) { 
jQuery.fn.submitAsync = function (adHocOpts, addFormObserver, skipValidation) {   
    $.each(this, function (i, form) 
    { 
     if (!$(form).data('submitOptions') && addFormObserver) 
      $(form).trigger('formLoad'); 

     $(form).data('adHocOptions', $(form).data('submitOptions')); 

     $(form).mergeOptions('adHocOptions', adHocOpts); 

     var options = $.extend($(form).data('adHocOptions'), 
     { 
      type: form.method,//.attr('method'), 
      url: form.action,//.attr('action'), 
      data: $(form).serialize() 
     }); 

     if (skipValidation) 
      options.validation = [];    
     setTimeout($.ajax(options), 10); 

    }); 
};})(jQuery); 

我不断收到意外的标识错误,停止执行。有任何想法吗?

谢谢

+0

当控制台指出错误时,它会给出精确的位置。 – 2013-03-26 11:05:11

+0

你可以看看控制台,并说哪一行是抛出错误 – 2013-03-26 11:05:29

+0

它不,令人惊讶!这就是为什么我很沮丧,因为我无法确定错误的位置! – 2013-03-26 11:16:17

回答

0

编辑:以前的答案是不正确的,试试这个:

setTimeout(function() {$.ajax(options)}, 10); 

我用这个小提琴http://jsfiddle.net/vasRL/2/才能到错误,并发现它被引发了setTimeout函数。

+0

我刚刚检查过,我认为所有的括号和大括号都是匹配的... – 2013-03-26 11:25:01

+0

我只是重新检查,看起来像你是对的,代码是完全有效的。我想我设法在这个小提琴中重现你的错误:http://jsfiddle.net/vasRL/,现在试图修复它 – cernunnos 2013-03-26 11:38:08

+0

谢谢你,你是一个生活的救星。 – 2013-03-26 12:13:07