Похоже, что всплывающая подсказка к кнопке панели инструментов ExtJS не отвечает настройкам - PullRequest
1 голос
/ 02 марта 2012

У меня есть панель, расположенная внизу страницы. Внутри его нижней панели инструментов есть кнопка, к которой мне нужно прикрепить подсказку. Так как эта кнопка находится внизу страницы и под ней нет места, при каждом отображении всплывающей подсказки она рисуется поверх кнопки - частично ее блокируя.

Чтобы избежать такого поведения, я пытался заставить всплывающую подсказку появляться над кнопкой. Сначала это казалось простым, потому что в документации сказано, что это можно сделать, установив для свойства подсказки anchor значение 'top'.

.

Однако при наведении курсора на кнопку текущая настройка привязки для всплывающей подсказки, похоже, не учитывается - всплывающая подсказка просто возвращается к своему поведению по умолчанию и продолжает отображаться справа от курсора:

When hovering

Я что-то здесь не так делаю?

Вот фрагмент моего кода:

Ext.define('Dashboard.view.companies.ListPanel', {
  extend: 'Ext.grid.Panel',

  // [snipped code]

  bbar: [{
      xtype: 'tbtext',
      text: 'Filtre actuel:'
    },{
      xtype: 'button',
      id: 'filter',
      text: 'Sociétés traitées',
      tooltip: {
        text: 'Enlever ce filtre',
        anchor: 'top'
      }
  }],

  // [snipped code]

});

Я не думаю, что constrainPosition имеет какое-либо отношение к этой проблеме, поскольку я попытался установить ее на false, и это ничего не изменило.

Установка якоря на top, left и right, похоже, не имеет никакого эффекта.

Я посмотрел примеры QuickTips в документации, и там, похоже, все работает нормально. Единственное отличие, которое я вижу, состоит в том, что в примерах они явно устанавливают свойство target , в то время как в моем случае оно устанавливается автоматически Ext.button.Button # setTooltip () при его создании .

Наконец, я также попытался установить mouseTrack на true безрезультатно, что указывает на то, что происходит что-то подозрительное.

Ответы [ 2 ]

3 голосов
/ 05 марта 2012

Вот как я работал после ответа Джеронимо:

// works
listeners: {
  afterrender: function() {
    Ext.create('Ext.tip.ToolTip',{
      target: 'filter',
      html: 'Enlever ce filtre',
      anchor: 'top'
    });
  }
}

Обратите внимание, что таким образом я использую Ext.tip.Tooltip вместо Ext.tip.QuickTip.Я не замечал этого раньше, но пример QuickTips фактически использует всплывающие подсказки вместо QuickTips!Казалось бы, в QuickTips есть ошибка, которая препятствует правильной работе привязки, потому что я попытался получить тот же результат, что и раньше:

// doesn't work as expected
listeners: {
  afterrender: function() {
    Ext.tip.QuickTipManager.register({
      target: 'filter',
      text: 'Enlever ce filtre',
      anchor: 'top'
    });
  }
}
1 голос
/ 02 марта 2012

Я столкнулся с той же проблемой, я не знаю, почему она настроена подобным образом, или какова основная причина, но я обнаружил, что по какой-то причине использование конфигурации Ext.button.Button tooltip не применяет параметрыдолжным образом.Когда я сделал это , как в примере показано : определив конфиги всплывающей подсказки в отдельном объекте с целевым конфигом, а затем используя Ext.create('Ext.tip.ToolTip', config), он работал совершенно нормально.Я полагаю, это как-то связано с тем, что кнопка не отображается сразу.

...