Я получаю RecordID и Title из моего источника данных. Я только хочу отобразить столбец Заголовок на экране, но мне нужен RecordID из строки, которая будет использоваться в событии клика. Поэтому я потащил их обоих в свой стол, и я ищу, чтобы скрыть RecordID.
У меня есть таблица, которая заполнена источником ajax, поэтому теги <tr>
и <td>
для моих данных динамически создаются. Они не являются частью кода, поэтому я не могу просто добавить класс, который я могу скрыть с помощью CSS.
<table id="example">
<thead>
<tr>
<th>RecordID</th>
<th>TITLE</th>
</tr>
</thead>
<tbody>
<!---Data and tags are dynamically generated--->
</tbody>
</table>
В документации DataTables приведено несколько вариантов добавления функции oTable.fnSetColumnVis( 0, false )
или "bVisible":false
. Обе эти функции прекрасно скрывают мой столбец, но тогда событие клика, которое у меня было на основе этого столбца, больше не будет работать.
Здесь событие click, которое я использую.
$('#example').on('dblclick', 'tr', function(event) {
var td = $('td', this);
var RecordID= $(td[0]).text();
});
Таким образом, вы можете видеть, что он обращается к индексу 0 (первый td или столбец в этой строке.) Как только я скрою этот столбец, другой td станет индексом 0. Мне все еще нужен этот столбец RecordID для получения информации из строки, но я не Не хочу показывать это на экране. Есть идеи?
Я понял это, добавив класс при объявлении таблицы.
$(document).ready(function() {
var oTable = $('#example').dataTable( {
"bJQueryUI": true,
"bProcessing": false,
"bServerSide": false,
"bFilter":false,
"bPaginate":false,
"bInfo":false,
"bSort":false,
"bAutoWidth":false,
"sAjaxSource": "datasource.cfm",
"aoColumns": [
{ "mData": "RecordID", "sClass":"testclass" },
{ "mData": "TITLE" }
]
});
});
И затем css
.testclass {
display:none;
}
После этого JQuery работает.