定时JQuery AJAX调用

时间:2010-10-04 22:08:07

标签: jquery

我正在使用FullCalendar插件,并在尝试填充我的div(事件)列表时遇到一些问题,然后将它们初始化为FullCalendar事件对象。

最初,事件是硬编码的,所以一切都运行良好。然后我尝试先填充我的事件选项:

//This part is working
    $(document).ready(function() {

                $.ajax({
                    type: "POST",
                    url: "myService.asmx/getOperators",
                    contentType: 'application/json; charset=utf-8',
                    success: function(doc) {

                        var ops = (eval(doc.d));

                        for (var i = 0; i < ops.length; i++) {

                            $('#external-events').append('<div class="external-event">' + ops[i].FullName + '</div>');
                            alert(ops[i].FullName + " has been added to the div");
                        }



                    }
                });

然后,在脚本结束时,我尝试遍历每个div并初始化它,如下所示:

 $('#external-events div.external-event').each(function() {

            $(this).data('eventObject', eventObject);

            });

问题是,初始化运行时尚未插入div。我试过.delay但是无法让它工作。

我想尝试初始化每个div,因为它已添加 - 但我无法弄清楚如何在没有.each循环的情况下引用动态创建的对象(即.each使用“this”来引用每个元素)

有人能告诉我如何在AJAX调用完成后计算第二个例程的运行时间,或者如何引用一堆具有相同类名的动态创建的元素?

1 个答案:

答案 0 :(得分:1)

您可以在for循环结束后直接将初始化代码添加到ajax的success函数中:

                    success: function(doc) {
                        var ops = (eval(doc.d));

                        for (var i = 0; i < ops.length; i++) {
                            $('#external-events').append('<div class="external-event">' + ops[i].FullName + '</div>');
                            alert(ops[i].FullName + " has been added to the div");
                        }

                        $('#external-events div.external-event').each(function() {
                            $(this).data('eventObject', eventObject);
                        });
                    }