1

我正在使用第三方 javascript 插件根据我的要求开发一个两列表功能。该插件接受一个json如下所示的输入数组:

var data = {"Project" : [{'Start':'02/20/2012',
'End':'02/20/2012',
'Content':'Project Description',
'Group' : 'Table Group 1'
},...
] };

Group在上面json的插件中使用时,可以给出任何类型的内容(custom html content as well),它在内部呈现为:

var items = []; //json array items will be pushed by items.push from input `data` json
for(var i=0,im = items.length;i<im;i++){
var group = items[i].Group;
groupDiv.innerHtml = group;
}

就我而言,对于Group项目的json array项目,我传递了一个自定义 HTML,如下所示:

var customHtml = '<div><span class="button-red"></span>'+
                       '<div class = "quick-info-hide">' + 
                       'Some Custom Content from input' +
                       '</div></div>'

customHtml从一些输入(另一个更大的 json)生成它并将其发送到插件,并试图不修改插件本身。但是,我不得不修改插件以在此处添加某些功能(行扩展on/off),这现在让我很困扰。

当行没有展开时,customHtml 的spananddiv应该有 class style1,如果它展开了,customHtml 的spananddiv应该有 class style2
但是,在插件内部,customHtml分配时没有任何if condition展开/折叠。由于该插件不是使用逻辑构建的row expansion/collapse on click,因此预计也不会这样做。我想在展开/折叠时更改此处的样式以分配给groupDiv.innerHtml即 customHtml,这可能可以通过另一种customHtml1具有不同样式的变体来完成。

做到这一点的最佳方法是什么?
我应该在此处添加一个并在插件中if condition发送两个变体并在各自的 if 上应用合适的变体吗?在这种情况下是否还有更好的方法来不破坏插件的通用方法(我似乎在这里进行了修改)?customHtmlcondition

4

0 回答 0