英文:
How to change Datatables rowGroup to only allow 1 open group?
问题
I use this script to extend/expand rowGroups in Datatables.<br>
var collapsedGroups = {}; //1
rowGroup: {
// Uses the 'row group' plugin
dataSrc: 'data',
startRender: function(rows, group) {
var collapsed = !!collapsedGroups[group]; //2
//LOOP THREW EAH ROW
rows.nodes().each(function (r) {
//SET DISPLAY = NONE
r.style.display = 'none';
//IF COLLAPSED (OPEN)
if (collapsed) {
//SET DISPLAY = SHOW
r.style.display = '';
}
});
// Add category name to the <tr>. NOTE: Hardcoded colspan
return $('<tr/>')
.append('<td></td>')
.attr('data-name', group)
.toggleClass('collapsed', collapsed);
}
},
//ON CLICK BTN EXPAND
$(document).on('click', 'i.fa-angle-down', function() {
//GET TR DATA NAME
var name = $(this).parent('td').parent('tr').data('name');
//
collapsedGroups[name] = !collapsedGroups[name]; //3
//
table.draw(false);
});
With this code, i'm able to have several groups open at the same time.<br>
Now i'm trying to only let one group to be open at a time.<br>
I've tried to change the obj collapsedGroups to a var:
var collapsedGroup; //1
var collapsed = collapsedGroup; //2
collapsedGroup = name; //3
But this did not work.<br>
How can i change the code to only allow one open group at a time?
JS FIDDLE<br>
https://jsfiddle.net/lbriquet/k2zr5Lws/1/
英文:
I use this script to extend/expand rowGroups in Datatables.<br>
var collapsedGroups = {}; //1
rowGroup: {
// Uses the 'row group' plugin
dataSrc: 'data',
startRender: function(rows, group) {
var collapsed = !!collapsedGroups[group]; //2
//LOOP THREW EAH ROW
rows.nodes().each(function (r) {
//SET DISPLAY = NONE
r.style.display = 'none';
//IF COLLAPSED (OPEN)
if (collapsed) {
//SET DISPLAY = SHOW
r.style.display = '';
}
});
// Add category name to the <tr>. NOTE: Hardcoded colspan
return $('<tr/>')
.append('<td></td>')
.attr('data-name', group)
.toggleClass('collapsed', collapsed);
}
},
//ON CLICK BTN EXPAND
$(document).on('click', 'i.fa-angle-down', function() {
//GET TR DATA NAME
var name = $(this).parent('td').parent('tr').data('name');
//
collapsedGroups[name] = !collapsedGroups[name]; //3
//
table.draw(false);
});
With this code, i'm able to have several groups open at the same time.<br>
Now i'm trying to only let one group to be open at a time.<br>
I've tried to change the obj collapsedGroups to a var:
var collapsedGroup; //1
var collapsed = collapsedGroup; //2
collapsedGroup = name; //3
But this did not work.<br>
How can i change the code to only allow one open group at a time?
JS FIDDLE<br>
https://jsfiddle.net/lbriquet/k2zr5Lws/1/
答案1
得分: 1
你需要在绘制完成事件上收集<tr>
的data-name
,然后在单击<tr>
时将其他名称的collapsedGroups
更改为false,如下所示:
英文:
You need to collect data-name
of <tr>
on finish draw event then on click <tr>
change collapsedGroups
of other name to false like:
<!-- begin snippet: js hide: false console: true babel: false -->
<!-- language: lang-js -->
$(document).ready(function() {
var collapsedGroups = {};
var table = $('#example').DataTable({
paging: false,
order: [
[2, 'asc']
],
rowGroup: {
// Uses the 'row group' plugin
dataSrc: 2,
startRender: function(rows, group) {
var collapsed = !!collapsedGroups[group];
rows.nodes().each(function(r) {
r.style.display = 'none';
if (collapsed) {
r.style.display = '';
}
});
// Add category name to the <tr>. NOTE: Hardcoded colspan
return $('<tr/>')
.append('<td colspan="8">' + group + ' (' + rows.count() + ')</td>')
.attr('data-name', group)
.toggleClass('collapsed', collapsed);
}
}
});
let namesTable = [];
$('#example').on('draw.dt', function() {
namesTable = [...document.querySelectorAll('#example tr[data-name]')].map(el => el.dataset.name);
});
$('#example tbody').on('click', 'tr.group-start', function() {
var name = $(this).data('name');
namesTable.forEach(el => {
if (el !== name)
collapsedGroups[el] = false;
});
collapsedGroups[name] = !collapsedGroups[name];
table.draw(false);
});
});
<!-- language: lang-css -->
body {
font: 90%/1.45em "Helvetica Neue", HelveticaNeue, Verdana, Arial, Helvetica, sans-serif;
margin: 0;
padding: 0;
color: #333;
background-color: #fff;
}
<!-- language: lang-html -->
<script type="text/javascript" src="//code.jquery.com/jquery-1.9.1.js"></script>
<link rel="stylesheet" type="text/css" href="/css/result-light.css">
<link rel="stylesheet" type="text/css" href="//nightly.datatables.net/css/jquery.dataTables.css">
<script type="text/javascript" src="//nightly.datatables.net/js/jquery.dataTables.js"></script>
<link rel="stylesheet" type="text/css" href="//cdn.datatables.net/rowgroup/1.0.2/css/rowGroup.dataTables.min.css">
<script type="text/javascript" src="//cdn.datatables.net/rowgroup/1.0.2/js/dataTables.rowGroup.min.js"></script>
<script type="text/javascript" src="https://cdn.datatables.net/buttons/1.2.2/js/buttons.html5.js"></script>
<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.32/pdfmake.min.js"></script>
<link rel="stylesheet" type="text/css" href="//cdn.datatables.net/buttons/1.5.1/css/buttons.dataTables.css">
<script type="text/javascript" src="//cdn.datatables.net/buttons/1.5.1/js/dataTables.buttons.js"></script>
<script type="text/javascript" src="//cdn.datatables.net/buttons/1.5.1/js/buttons.colVis.min.js"></script>
<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/jszip/3.1.3/jszip.min.js"></script>
<script type="text/javascript" src="//cdn.datatables.net/buttons/1.5.1/js/buttons.colVis.min.js"></script>
<div class="container">
<table id="example" class="display" style="width:100%">
<thead>
<tr>
<th>Name</th>
<th>Position</th>
<th>Office</th>
<th>Age</th>
<th>Start date</th>
<th>Salary</th>
</tr>
</thead>
<tbody>
<tr>
<td data-search="Tiger Nixon">T. Nixon</td>
<td>System Architect</td>
<td>Edinburgh</td>
<td>61</td>
<td data-order="1303689600">Mon 25th Apr 11</td>
<td data-order="320800">$320,800/y</td>
</tr>
<tr>
<td data-search="Garrett Winters">G. Winters</td>
<td>Accountant</td>
<td>Tokyo</td>
<td>63</td>
<td data-order="1311552000">Mon 25th Jul 11</td>
<td data-order="170750">$170,750/y</td>
</tr>
<tr>
<td data-search="Ashton Cox">A. Cox</td>
<td>Junior Technical Author</td>
<td>San Francisco</td>
<td>66</td>
<td data-order="1231718400">Mon 12th Jan 09</td>
<td data-order="86000">$86,000/y</td>
</tr>
<tr>
<td data-search="Cedric Kelly">C. Kelly</td>
<td>Senior Javascript Developer</td>
<td>Edinburgh</td>
<td>22</td>
<td data-order="1332979200">Thu 29th Mar 12</td>
<td data-order="433060">$433,060/y</td>
</tr>
<tr>
<td data-search="Airi Satou">A. Satou</td>
<td>Accountant</td>
<td>Tokyo</td>
<td>33</td>
<td data-order="1227830400">Fri 28th Nov 08</td>
<td data-order="162700">$162,700/y</td>
</tr>
<tr>
<td data-search="Brielle Williamson">B. Williamson</td>
<td>Integration Specialist</td>
<td>New York</td>
<td>61</td>
<td data-order="1354406400">Sun 2nd Dec 12</td>
<td data-order="372000">$372,000/y</td>
</tr>
<tr>
<td data-search="Herrod Chandler">H. Chandler</td>
<td>Sales Assistant</td>
<td>San Francisco</td>
<td>59</td>
<td data-order="1344211200">Mon 6th Aug 12</td>
<td data-order="137500">$137,500/y</td>
</tr>
<tr>
<td data-search="Rhona Davidson">R. Davidson</td>
<td>Integration Specialist</td>
<td>Tokyo</td>
<td>55</td>
<td data-order="1287014400">Thu 14th Oct 10</td>
<td data-order="327900">$327,900/y</td>
</tr>
<tr>
<td data-search="Colleen Hurst">C. Hurst</td>
<td>Javascript Developer</td>
<td>San Francisco</td>
<td>39</td>
<td data-order="1252972800">Tue 15th Sep 09</td>
<td data-order="205500">$205,500/y</td>
</tr>
<tr>
<td data-search="Sonya Frost">S. Frost</td>
<td>Software Engineer</td>
<td>Edinburgh</td>
<td>23</td>
<td data-order="1229126400">Sat 13th Dec 08</td>
<td data-order="103600">$103,600/y</td>
</tr>
<tr>
<td data-search="Jena Gaines">J. Gaines</td>
<td>Office Manager</td>
<td>London</td>
<td>30</td>
<td data-order="1229644800">Fri 19th Dec 08</td>
<td data-order="90560">$90,560/y</td>
</tr>
<tr>
<td data-search="Quinn Flynn">Q. Flynn</td>
<td>Support Lead</td>
<td>Edinburgh</td>
<td>22</td>
<td data-order="1362268800">Sun 3rd Mar 13</td>
<td data-order="342000">$342,000/y</td>
</tr>
<tr>
<td data-search="Charde Marshall">C. Marshall</td>
<td>Regional Director</td>
<td>San Francisco</td>
<td>36</td>
<td data-order="1224115200">Thu 16th Oct 08</td>
<td data-order="470600">$470,600/y</td>
</tr>
<tr>
<td data-search="Haley Kennedy">H. Kennedy</td>
<td>Senior Marketing Designer</td>
<td>London</td>
<td>43</td>
<td data-order="1355788800">Tue 18th Dec 12</td>
<td data-order="313500">$313,500/y</td>
</tr>
<tr>
<td data-search="Tatyana Fitzpatrick">T. Fitzpatrick</td>
<td>Regional Director</td>
<td>London</td>
<td>19</td>
<td data-order="1268784000">Wed 17th Mar 10</td>
<td data-order="385750">$385,750/y</td>
</tr>
<tr>
<td data-search="Michael Silva">M. Silva</td>
<td>Marketing Designer</td>
<td>London</td>
<td>66</td>
<td data-order="1353974400">Tue 27th Nov 12</td>
<td data-order="198500">$198,500/y</td>
</tr>
<tr>
<td data-search="Paul Byrd">P. Byrd</td>
<td>Chief Financial Officer (CFO)</td>
<td>New York</td>
<td>64</td>
<td data-order="1276041600">Wed 9th Jun 10</td>
<td data-order="725000">$725,000/y</td>
</tr>
<tr>
<td data-search="Gloria Little">G. Little</td>
<td>Systems Administrator</td>
<td>New York</td>
<td>59</td>
<td data-order="1239321600">Fri 10th Apr 09</td>
<td data-order="237500">$237,500/y</td>
</tr>
<tr>
<td data-search="Bradley Greer">B. Greer</td>
<td>Software Engineer</td>
<td>London</td>
<td>41</td>
<td data-order="1350086400">Sat 13th Oct 12</td>
<td data-order="132000">$132,000/y</td>
</tr>
<tr>
<td data-search="Dai Rios">D. Rios</td>
<td>Personnel Lead</td>
<td>Edinburgh</td>
<td>35</td>
<td data-order="1348617600">Wed 26th Sep 12</td>
<td data-order="217500">$217,500/y</td>
</tr>
<tr>
<td data-search="Jenette Caldwell">J. Caldwell</td>
<td>Development Lead</td>
<td>New York</td>
<td>30</td>
<td data-order="1315008000">Sat 3rd Sep 11</td>
<td data-order="345000">$345,000/y</td>
</tr>
<tr>
<td data-search="Yuri Berry">Y. Berry</td>
<td>Chief Marketing Officer (CMO)</td>
<td>New York</td>
<td>40</td>
<td data-order="1245888000">Thu 25th Jun 09</td>
<td data-order="675000">$675,000/y</td>
</tr>
<tr>
<td data-search="Caesar Vance">C. Vance</td>
<td>Pre-Sales Support</td>
<td>New York</td>
<td>21</td>
<td data-order="1323648000">Mon 12th Dec 11</td>
<td data-order="106450">$106,450/y</td>
</tr>
<tr>
<td data-search="Doris Wilder">D. Wilder</td>
<td>Sales Assistant</td>
<td>Sidney</td>
<td>23</td>
<td data-order="1284940800">Mon 20th Sep 10</td>
<td data-order="85600">$85,600/y</td>
</tr>
<tr>
<td data-search="Angelica Ramos">A. Ramos</td>
<td>Chief Executive Officer (CEO)</td>
<td>London</td>
<td>47</td>
<td data-order="1255046400">Fri 9th Oct 09</td>
<td data-order="1200000">$1,200,000/y</td>
</tr>
<tr>
<td data-search="Gavin Joyce">G. Joyce</td>
<td>Developer</td>
<td>Edinburgh</td>
<td>42</td>
<td data-order="1292976000">Wed 22nd Dec 10</td>
<td data-order="92575">$92,575/y</td>
</tr>
<tr>
<td data-search="Jennifer Chang">J. Chang</td>
<td>Regional Director</td>
<td>Singapore</td>
<td>28</td>
<td data-order="1289692800">Sun 14th Nov 10</td>
<td data-order="357650">$357,650/y</td>
</tr>
<tr>
<td data-search="Brenden Wagner">B. Wagner</td>
<td>Software Engineer</td>
<td>San Francisco</td>
<td>28</td>
<td data-order="1307404800">Tue 7th Jun 11</td>
<td data-order="206850">$206,850/y</td>
</tr>
<tr>
<td data-search="Fiona Green">F. Green</td>
<td>Chief Operating Officer (COO)</td>
<td>San Francisco</td>
<td>48</td>
<td data-order="1268265600">Thu 11th Mar 10</td>
<td data-order="850000">$850,000/y</td>
</tr>
<tr>
<td data-search="Shou Itou">S. Itou</td>
<td>Regional Marketing</td>
<td>Tokyo</td>
<td>20</td>
<td data-order="1313280000">Sun 14th Aug 11</td>
<td data-order="163000">$163,000/y</td>
</tr>
<tr>
<td data-search="Michelle House">M. House</td>
<td>Integration Specialist</td>
<td>Sidney</td>
<td>37</td>
<td data-order="1306972800">Thu 2nd Jun 11</td>
<td data-order="95400">$95,400/y</td>
</tr>
<tr>
<td data-search="Suki Burks">S. Burks</td>
<td>Developer</td>
<td>London</td>
<td>53</td>
<td data-order="1256169600">Thu 22nd Oct 09</td>
<td data-order="114500">$114,500/y</td>
</tr>
<tr>
<td data-search="Prescott Bartlett">P. Bartlett</td>
<td>Technical Author</td>
<td>London</td>
<td>27</td>
<td data-order="1304726400">Sat 7th May 11</td>
<td data-order="145000">$145,000/y</td>
</tr>
<tr>
<td data-search="Gavin Cortez">G. Cortez</td>
<td>Team Leader</td>
<td>San Francisco</td>
<td>22</td>
<td data-order="1224979200">Sun 26th Oct 08</td>
<td data-order="235500">$235,500/y</td>
</tr>
<tr>
<td data-search="Martena Mccray">M. Mccray</td>
<td>Post-Sales support</td>
<td>Edinburgh</td>
<td>46</td>
<td data-order="1299628800">Wed 9th Mar 11</td>
<td data-order="324050">$324,050/y</td>
</tr>
<tr>
<td data-search="Unity Butler">U. Butler</td>
<td>Marketing Designer</td>
<td>San Francisco</td>
<td>47</td>
<td data-order="1260316800">Wed 9th Dec 09</td>
<td data-order="85675">$85,675/y</td>
</tr>
<tr>
<td data-search="Howard Hatfield">H. Hatfield</td>
<td>Office Manager</td>
<td>San Francisco</td>
<td>51</td>
<td data-order="1229385600">Tue 16th Dec 08</td>
<td data-order="164500">$164,500/y</td>
</tr>
<tr>
<td data-search="Hope Fuentes">H. Fuentes</td>
<td>Secretary</td>
<td>San Francisco</td>
<td>41</td>
<td data-order="1265932800">Fri 12th Feb 10</td>
<td data-order="109850">$109,850/y</td>
</tr>
<tr>
<td data-search="Vivian Harrell">V. Harrell</td>
<td>Financial Controller</td>
<td>San Francisco</td>
<td>62</td>
<td data-order="1234569600">Sat 14th Feb 09</td>
<td data-order="452500">$452,500/y</td>
</tr>
<tr>
<td data-search="Timothy Mooney">T. Mooney</td>
<td>Office Manager</td>
<td>London</td>
<td>37</td>
<td data-order="1228953600">Thu 11th Dec 08</td>
<td data-order="136200">$136,200/y</td>
</tr>
<tr>
<td data-search="Jackson Bradshaw">J. Bradshaw</td>
<td>Director</td>
<td>New York</td>
<td>65</td>
<td data-order="1222387200">Fri 26th Sep 08</td>
<td data-order="645750">$645,750/y</td>
</tr>
<tr>
<td data-search="Olivia Liang">O. Liang</td>
<td>Support Engineer</td>
<td>Singapore</td>
<td>64</td>
<td data-order="1296691200">Thu 3rd Feb 11</td>
<td data-order="234500">$234,500/y</td>
</tr>
<tr>
<td data-search="Bruno Nash">B. Nash</td>
<td>Software Engineer</td>
<td>London</td>
<td>38</td>
<td data-order="1304380800">Tue 3rd May 11</td>
<td data-order="163500">$163,500/y</td>
</tr>
<tr>
<td data-search="Sakura Yamamoto">S. Yamamoto</td>
<td>Support Engineer</td>
<td>Tokyo</td>
<td>37</td>
<td data-order="1250640000">Wed 19th Aug 09</td>
<td data-order="139575">$139,575/y</td>
</tr>
<tr>
<td data-search="Thor Walton">T. Walton</td>
<td>Developer</td>
<td>New York</td>
<td>61</td>
<td data-order="1376179200">Sun 11th Aug 13</td>
<td data-order="98540">$98,540/y</td>
</tr>
<tr>
<td data-search="Finn Camacho">F. Camacho</td>
<td>Support Engineer</td>
<td>San Francisco</td>
<td>47</td>
<td data-order="1246924800">Tue 7th Jul 09</td>
<td data-order="87500">$87,500/y</td>
</tr>
<tr>
<td data-search="Serge Baldwin">S. Baldwin</td>
<td>Data Coordinator</td>
<td>Singapore</td>
<td>64</td>
<td data-order="1333929600">Mon 9th Apr 12</td>
<td data-order="138575">$138,575/y</td>
</tr>
<tr>
<td data-search="Zenaida Frank">Z. Frank</td>
<td>Software Engineer</td>
<td>New York</td>
<td>63</td>
<td data-order="1262563200">Mon 4th Jan 10</td>
<td data-order="125250">$125,250/y</td>
</tr>
<tr>
<td data-search="Zorita Serrano">Z. Serrano</td>
<td>Software Engineer</td>
<td>San Francisco</td>
<td>56</td>
<td data-order="1338508800">Fri 1st Jun 12</td>
<td data-order="115000">$115,000/y</td>
</tr>
<tr>
<td data-search="Jennifer Acosta">J. Acosta</td>
<td>Junior Javascript Developer</td>
<td>Edinburgh</td>
<td>43</td>
<td data-order="1359676800">Fri 1st Feb 13</td>
<td data-order="75650">$75,650/y</td>
</tr>
<tr>
<td data-search="Cara Stevens">C. Stevens</td>
<td>Sales Assistant</td>
<td>New York</td>
<td>46</td>
<td data-order="1323129600">Tue 6th Dec 11</td>
<td data-order="145600">$145,600/y</td>
</tr>
<tr>
<td data-search="Hermione Butler">H. Butler</td>
<td>Regional Director</td>
<td>London</td>
<td>47</td>
<td data-order="1300665600">Mon 21st Mar 11</td>
<td data-order="356250">$356,250/y</td>
</tr>
<tr>
<td data-search="Lael Greer">L. Greer</td>
<td>Systems Administrator</td>
<td>London</td>
<td>21</td>
<td data-order="1235692800">Fri 27th Feb 09</td>
<td data-order="103500">$103,500/y</td>
</tr>
<tr>
<td data-search="Jonas Alexander">J. Alexander</td>
<td>Developer</td>
<td>San Francisco</td>
<td>30</td>
<td data-order="1279065600">Wed 14th Jul 10</td>
<td data-order="86500">$86,500/y</td>
</tr>
<tr>
<td data-search="Shad Decker">S. Decker</td>
<td>Regional Director</td>
<td>Edinburgh</td>
<td>51</td>
<td data-order="1226534400">Thu 13th Nov 08</td>
<td data-order="183000">$183,000/y</td>
</tr>
<tr>
<td data-search="Michael Bruce">M. Bruce</td>
<td>Javascript Developer</td>
<td>Singapore</td>
<td>29</td>
<td data-order="1309132800">Mon 27th Jun 11</td>
<td data-order="183000">$183,000/y</td>
</tr>
<tr>
<td data-search="Donna Snider">D. Snider</td>
<td>Customer Support</td>
<td>New York</td>
<td>27</td>
<td data-order="1295913600">Tue 25th Jan 11</td>
<td data-order="112000">$112,000/y</td>
</tr>
</tbody>
<tfoot>
<tr>
<th>Name</th>
<th>Position</th>
<th>Office</th>
<th>Age</th>
<th>Start date</th>
<th>Salary</th>
</tr>
</tfoot>
</table>
</div>
<!-- end snippet -->
I added the code with pure js (because i prefere it) but you can change it with jquery if you want.
答案2
得分: -1
要实现Datatables的rowGroup只允许同时打开一个分组,您需要跟踪当前打开的分组并在打开不同的分组时关闭其他分组。我希望下面我分享的代码可以解决您的问题。
var currentOpenGroup = null;
var collapsedGroups = {};
$('#example').DataTable({
rowGroup: {
dataSrc: 'group',
startRender: function(rows, group) {
var collapsed = !!collapsedGroups[group];
if (group === currentOpenGroup) {
collapsed = false;
} else if (currentOpenGroup !== null && collapsedGroups[currentOpenGroup] === false) {
collapsedGroups[currentOpenGroup] = true;
}
rows.nodes().each(function (r) {
r.style.display = collapsed ? 'none' : '';
});
return $('<tr/>')
.append('<td></td>')
.attr('data-name', group)
.toggleClass('collapsed', collapsed);
}
}
});
$(document).on('click', 'i.fa-angle-down', function() {
var name = $(this).parent('td').parent('tr').data('name');
if (name === currentOpenGroup) {
currentOpenGroup = null;
collapsedGroups[name] = true;
} else {
currentOpenGroup = name;
for (var group in collapsedGroups) {
if (group !== name) {
collapsedGroups[group] = true;
}
}
collapsedGroups[name] = false;
}
$('#example').DataTable().draw(false);
});
这段代码将实现您所需的功能。如果您有任何其他问题,请随时提问。
英文:
To change the Datatables rowGroup to only allow one open group at a time, you need to keep track of the currently open group and close the other when a different group opens. I hope the code I will share below will solve your problem.
<!-- begin snippet: js hide: false console: true babel: false -->
<!-- language: lang-html -->
var currentOpenGroup = null;
var collapsedGroups = {};
$('#example').DataTable({
rowGroup: {
dataSrc: 'group',
startRender: function(rows, group) {
var collapsed = !!collapsedGroups[group];
if (group === currentOpenGroup) {
collapsed = false;
} else if (currentOpenGroup !== null && collapsedGroups[currentOpenGroup] === false) {
collapsedGroups[currentOpenGroup] = true;
}
rows.nodes().each(function (r) {
r.style.display = collapsed ? 'none' : '';
});
return $('<tr/>')
.append('<td></td>')
.attr('data-name', group)
.toggleClass('collapsed', collapsed);
}
}
});
$(document).on('click', 'i.fa-angle-down', function() {
var name = $(this).parent('td').parent('tr').data('name');
if (name === currentOpenGroup) {
currentOpenGroup = null;
collapsedGroups[name] = true;
} else {
currentOpenGroup = name;
for (var group in collapsedGroups) {
if (group !== name) {
collapsedGroups[group] = true;
}
}
collapsedGroups[name] = false;
}
$('#example').DataTable().draw(false);
});
<!-- end snippet -->
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论