Я работаю с когридом. Я хочу применить всплывающую подсказку к каждой ячейке в определенном столбце на основе данных в этом столбце. Моя проблема заключается в том, чтобы найти, когда и где разместить всплывающую подсказку jquery:
$('[data-toggle="tooltip"]').tooltip();
colDef, который я использую:
var myCol = {
headerClass: 'koGridCentered',
displayName: 'My Display',
field: 'RootError',
cellTemplate: '<div style="margin-top: 3px;" >' +
'<div data-bind=" attr: { \'class\': \'kgCellText colt\' + $index() }">' +
'<a href="#" data-toggle="tooltip" data-bind=" attr: { \'title\': $data.getProperty($parent) }, html: $data.getProperty($parent)"></a>' +
'</div>' +
'</div>',
sortable: true, resizeable: true
}
Данные возвращаются из запроса ajax. Я попытался поместить jquery в блок axaxStop:
$(document).ajaxStop(function() {
$('[data-toggle="tooltip"]').tooltip();
}
Но это вызывается до того, как kogrid отобразит все строки.
Я прибегнул к использованию setTimeout и просто задержал на X миллисекунд, а затем применил всплывающую подсказку, и это работает, но это похоже на взлом.
$(document).ajaxStop(function() {
setTimeout(function() {
$('[data-toggle="tooltip"]').tooltip();
}, 10);
});
Я также попытался вызвать всплывающую подсказку после ввода моих данных в мою модель представления.
for (var i = 1; i < data.length; ++i) {
_this.SharedViewModel.MyCollection.push(ko.mapping.fromJS(data[i]));
}
$('[data-toggle="tooltip"]').tooltip();
Это приводит к тому, что всплывающая подсказка применяется к первым приблизительно 7 строкам, а не к остальным строкам.
То, что я действительно ищу, - это способ доступа к некоторому событию kogrid, которое срабатывает, когда сетка полностью визуализируется. Я искал это и ничего не придумал, поэтому я спрашиваю сообщество.
Есть еще одна небольшая проблема, которую я заметил: моя всплывающая подсказка скрыта под ячейкой kogrid над ней. Но это второстепенно, и я надеюсь решить с помощью z-индекса.