我正在使用第三方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>'
我从某个输入(另一个更大的json)生成此customHtml
并将其发送到插件并尝试不修改插件本身。但是,我不得不修改插件以在此处添加某个功能(行扩展on/off
),这让我感到不安。
当行未展开时,customHtml的span
和div
应该有style1
个类,如果展开,customHtml的span
和div
应该有班style2
。
但是,在插件内部,customHtml
被分配时没有任何if condition
扩展/折叠。由于插件不是以row expansion/collapse on click
的逻辑构建的,因此预计也不会这样做。我想在扩展/折叠时更改这里的样式以分配给groupDiv.innerHtml
即customHtml,这可能是由customHtml1
的另一种变体来完成的,它会有不同的样式。
这样做的最佳方法是什么?
我应该在此处添加if condition
并在插件中发送customHtml
的两种变体,并在相应的condition
上应用合适的变体吗?在这种情况下是否有更好的方法来破坏插件的通用方法(我似乎在这里做了修改)?