У меня есть HTML-код, который отображает таблицу при первой загрузке.
Обратный вызов, который перерисовывает таблицу по событию переключателя, выдает две ошибки во время выполнения.
TypeError: docInstance.getElementById не является функцией
TypeError: document.getElementById (...) имеет значение null
Код является частичным, поскольку я удалил пользовательские интерфейсы.
HTML-код
<div id = "mytableanchor1" class="mytableanchor1"></div>
<div id = "mytableanchor2" class="mytableanchor2"></div>
<table>
<th>Select radio button:</th>
<tr>
<td>
<input type="radio" name="button1" value="1" checked>1
<input type="radio" name="button1" value="2">2
</td>
</tr>
</table>
Функции JavaScript
<script>
function GetView(data)
{
var view = new google.visualization.DataView(data);
return view;
}
function RenderTable(data, elementId, docInstance)
{
var gdatatable = new google.visualization.DataTable();
..
// initialize gdatatable with custom colors for cells using data
..
// anchor the table at given html element
var table = new google.visualization.Table (docInstance.getElementById(elementId));
// draw the table
table.draw(GetView(gdatatable), {showRowNumber: true/*some settings*/});
}
Первая загрузка кода JavaScript
var global_data;
var global_buttonValue = '1';
...
...
global_data = data;
// pass document instance
RenderTable(global_data,'mytableanchor1', document);
...
...
Javascript код обратного вызова, который не работает
function DocumentReady()
{
// pass document instance
$(document).on('click', "input[name=button1]", RenderTableCallback($(document)));
}
// using closure scope to pass document instance as param to callback
// read about it here http://www.jstips.co/en/javascript/passing-arguments-to-callback-functions/
function RenderTableCallback(docInstance)
{
return function() {
global_buttonValue = $(this).val();
..
// modify global_data using global_buttonValue
..
// now render global_data in table
RenderTable(global_data,'mytableanchor1', docInstance);
}
}
</script>
=======
FIX
Исправлено использование документа вместо $ (document) в функции DocumentReady ()