异步函数无法使用JQuery

时间:2014-01-05 06:04:55

标签: javascript jquery prototype

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

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 个答案:

答案 0 :(得分:1)

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

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

注意:我使用标准的jquery表示法,您可以将其修改为无冲突版本。

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