0
我正在使用kogrid。我想根據該列中的數據將工具提示應用於特定列中的每個單元格。我的問題是要找到什麼時候/在哪裏放置我的jQuery的工具提示:如何在koGrid完全呈現後執行代碼?
$('[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);
});
我也嘗試在將數據推送到viewmodel後調用工具提示。
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解決。
你應該使用Knockout,我的意思是你不應該使用jQuery來使用綁定處理器之外的DOM。爲您的工具提示製作自定義綁定處理程序。或者,也許http://billpull.com/knockout-bootstrap/會幫助你。 –
@RoyJ - 感謝您對淘汰賽的引導!我一直在試圖找出自定義綁定處理程序的語法,並且knockout-bootstrap爲我實現它。你應該讓你的評論成爲一個答案。謝謝。 –