2016-09-23 4 views

ответ

0

Когда кто-то расширяет «выбранный список» нашего поля тегов, чем на этикетке появляется onClick Listener. Этот прослушиватель разрушает «выбранный список» при нажатии на метку tagfields.

listeners: { 
     expand: function (field) { 
      // Collapse List when click on Label 
      field.getEl().el.component.labelEl.on('click', function() { 
        setTimeout(function() { 
         field.collapse(); 
        }, 100); 
       } 
      ); 
     } 
    } 
0

Во-первых, вы должны понять, что происходит лучше. Поле тега не закрывается, потому что вы нажали на метку; он закрывается, потому что поле тега потеряло фокус. В Chrome вы можете щелкнуть в любом месте за пределами поля тега, и он будет закрыт - не только на ярлыке.

Это, в свою очередь, дает нам подсказку о том, что происходит - поле тега не теряет фокус. Теперь, когда вы смотрите на код HTML метки, он настроен с атрибутом for - в конце концов, это метка для.

И получается, что когда вы нажимаете на ярлык, оно предназначено для переноса фокуса на соответствующее поле. Таким образом, в Internet Explorer поле тега никогда не теряет фокус, поэтому поле тега никогда не закрывается.

Я бы сказал, что IE ближе к цели спецификации в этой ситуации. Но в любом случае, если вы действительно хотите этого поведения, вам нужно будет сам его закодировать с помощью прослушивателя onclick для метки.

+0

Большое спасибо за ответ. –

+0

У меня есть второстепенное: https://fiddle.sencha.com/#fiddle/1hji Без моей работы вокруг Chrome работает как IE 11. inputId: "dpvMytagfieldinputToNotSelect", Itemid: "dpvMytagfielditemToNotSelect", –

+0

Я сделал прослушиватель кликов, но когда он скроется, все браузер снова откроет список тегов-тегов: init: function() { // Закрыть Tagfildlist при нажатии на метку Ext.getCmp ('mytagfield'). LabelEl.on (' click ', function() {Ext.getCmp (' mytagfield '). collapse();}); } –