Отображать всплывающую подсказку на основе условия при наведении курсора мыши

Я использую этот код в сетке рендеринга события для отображения 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;

когда вы не хотите показывать всплывающую подсказку.

Другие вопросы по тегам