2014-01-28 2 views
0

У меня есть панель плавающего дерева, которая показывает (showBy) вверху под полем со списком, когда я нажимаю на него. Я хотел бы щелкнуть за панель дерева, чтобы скрыть его, поэтому я пытаюсь прослушивать размытие, которое будет вставлено ниже. Но прослушиватель размытия не вызывается на клик за пределами панели.Размытый слушатель плавающей панели дерева не называется

    blur: function(tree, event, opts) { 
         treePanel.setVisible(false); 
        } 

Я также попытался установить размытие слушателя на дереве панели «эль», но затем по щелчку узла дерева сам запускает этот приемник. Я не совсем понимаю, почему это происходит.

    el: { 
         blur: function() { 
          treePanel.setVisible(false); 
         } 
        } 

Может кто-нибудь предложить, как я должен подходить к этой проблеме? Благодарю.

+0

Вы можете получить событие фокус стрелять? Возможно, это никогда не фокусируется, поэтому он никогда не может потерять фокус. Кроме того, если вы разместите больше своего кода, возможно, в рабочем jsfiddle, его будет легче отлаживать. – forgivenson

+0

Событие фокуса также не срабатывает. Я проверяю document.activeElement и показывает div дерева. – user286806

ответ

0

Вы должны установить фокус на своей плавающей сетке. blur будет работать только в том случае, если компонент теряет фокус. Чтобы потерять фокус, он должен сначала сосредоточиться.

В коде заменить treePanel.setVisible(true); с

treePanel.setVisible(true) 
treePanel.focus() 
Смежные вопросы