我正在与kogrid合作。我想根据该列中的数据将工具提示应用于特定列中的每个单元格。我的问题是找到确切的时间/位置放置我的工具提示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-index解决。
最佳答案
在淘汰赛中,您仅应通过绑定处理程序与View元素进行交互。 Knockout-Bootstrap为Bootstrap小部件提供了许多绑定处理程序。
关于javascript - koGrid完全渲染后如何执行代码?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32073592/