Отображать всплывающую подсказку на основе условия при наведении курсора мыши
Я использую этот код в сетке рендеринга события для отображения TPL на строке мыши при наведении
grid.tip = new Ext.ToolTip({
view: grid.getView(),
target: grid.getView().mainBody,
delegate: '.x-grid3-row',
trackMouse: true,
renderTo: Ext.getBody(),
showDelay: 1000,
listeners: {
beforeshow: function updateTipBody(tip) {
var i = grid.getView().findRowIndex(tip.triggerElement);
var ViewObj = grid.getStore().getAt(i);
var nameVar, addressVar, salesOrgVar;
if (ViewObj.get('ERROR_MESSAGE') != null && (ViewObj.get('ERROR_MESSAGE')).length > 1) {
console.log("done..");
nameVar = (ViewObj.get('ERROR_MESSAGE') != null && ViewObj.get('ERROR_MESSAGE') != "") ? (Ext.BUNDLE.getMsg('POSFilesWidget.ErrorFolderGrid.ErrorFolder.label') + " : " + ViewObj.get('ERROR_MESSAGE')) : "";
tip.update(nameVar);
} else {
tip.setSize(0, 0);
tip.setVisible(false);
console.log("1..");
}
}
}
});
но когда сообщение не приходит, то он отображает мне пустой TPL, но я не хочу показывать всплывающую подсказку, пожалуйста, смотрите изображение
1 ответ
Решение
Это ошибка ExtJS. Вы должны позвонить
Tooltip.render(Ext.getBody());
в начале вашего приложения. И тогда в вашем слушателе
return false;
когда вы не хотите показывать всплывающую подсказку.