我以为我在第一次发布jQuery 1.4时已经看过这个,但现在似乎找不到任何东西。
我有一个日历表,它是从json ajax响应动态构建的。
该表构建在一个名为putHtml的变量中。
目前,一旦将表添加到DOM中,我就运行一个showEvents函数,该函数接收每个事件并将其添加到表中的相应单元格中。
不幸的是,当我有100个事件时,这意味着我正在更新DOM 100单独的时间。这变得相当慢。
我使用showEvents函数动态添加事件,所以如果我可以使用相同的函数,并指定在DOM中查找要添加事件的单元格,或者查看变量(假设我是我说得对,你可以用jQuery实际做到这一点。
我使用的代码就是这个
。jQuery的( 'DIV#日历')附加( 'putHtml.join(''));
for(var e in thisCal.events){
showEvent(thisCal.events [E]);
}
我试图做的是
for(var e in thisCal.events){
showEvent(thisCal.events [E],putHtml);
}
。jQuery的( 'DIV#日历')附加( 'putHtml.join(''));
showEvents函数看起来像这样
function showEvents(event){
var eventDate = event.date;
var eventTime = event.time;
var eventGroup = event.group;
var eventName = event.name;
var eventType = event.type;
var whereEvent = jQuery('div.a'+ eventDate,'table。'+ eventGroup);
var putEvent ='< div class =“event”id =“a +'eventDate +'_'+ eventTime +'”>'+ eventName +'< / div>'
jQuery(whereEvent,'div #calendar')。append(putEvent);
如果(EVENTTYPE> 2){
jQuery(whereEvent,'div#listings')。append(putEvent);
}
}
当我在添加到dom之前尝试操作变量putHtml时,我将putHtml传递给showEvent函数,因此我没有(whereEvent,'div #calendar'),而是(whereEvent,putHtml),但是这不起作用。
当然,实现这一目标的另一种方法是,当我创建每个单元格时,我遍历事件json,并在当时将适当的html应用于单元格,但这意味着重复运行整个json以获得放入牢房的事件。
有没有其他/更好的方法来做这样的事情?