2014-01-05 123 views
1

我有一个函数使用原型,我的对象,但现在需要做的异步调用设置一些投入的问题是,我在这里得到$$(...).asyncEach is not a function不工作是我的代码片段异步函数使用JQuery

Customers.prototype.AddDatePickers = function() 
{ 
    $j.fn.asyncEach = function(callback){ 
     var i = 0; 
     var elements = this; 
     var timer = setInterval(function() { 
      callback.call(elements[i], elements[i]); 
      if(++i >= elements.length) clearInterval(timer); 
     }, 0); 
    } 

    $$('.dateInputs').asyncEach(function (input) { 
     $(this).kendoDatePicker(); 
    }); 
} 

我必须这样做的原因是因为需要创建日期选择器的输入很多,所以无响应的脚本消息显示。我试图避免这种情况,这是作为答案给出的,我的问题是我认为(我是jquery的新手)是它是在一个原型函数?,通常当我需要使用$我必须使用$j在我的原型的功能,以便不存在冲突。但是随着这个设置,我不确定如何使它工作。

+1

请注意,您正在调用'asyncEach'(no'h') – JNF

+0

这不是问题,它的复制粘贴错别字对不起 - 我修复了错字错误 – jedgard

+0

您的代码导致语法错误,因为您错过了' )'。 – meagar

回答

1

出于您所描述的目的,这可能会简单得多。以下应该做的。

$('.dateInputs').each(function() { 
    var element = this; 
    setTimeout(function() { 
     $(element).kendoDatePicker(); 
    }, 0); 
}); 

注:我使用的是标准的jQuery符号,你可以修改它的无冲突的版本。

此外,您的版本中有一个错误,即使元素为空,也会至少调用callback一次。

+0

哇这真棒谢谢你 – jedgard