フォーカスを失った後にフォーカスクラスを保持するボタン
質問
行編集グリッドからのレコードの追加と削除を制御するgridpanelの下部ツールバーにいくつかのボタンがあります。
ハンドラーは非常にシンプルです:「新規」ボタンは、モデルのインスタンスを作成し、グリッドに追加してから、新しい行の行エディタを開きます;"編集"ボタンは、選択した行の行エディタを開くだけです;"remove"は、ストアからレコードを破棄し、グリッドビューを更新します。
何らかの理由で、これらのボタンは、フォーカスがあるときに境界線を与えるフォーカスクラスを失うことはありません。ここに写真があります:
写真では、「新規」ボタンと「削除」ボタンの両方にフォーカスクラスがあり、「編集」ボタンを押すと、完全な行編集操作を実行して行エディタを閉じた後もフォーカ
これらの永続的に「フォーカスされた」ボタンの1つにマウスダウンしてからマウスアップしてから、他の何かをクリックすると、フォーカスクラスが消
私はそれぞれのコントローラのすべてのボタンコンポーネントのぼかしハンドラを置くことができることを知っていますが、私はこの機能が組み込まれていると思っていたので、私はドキュメントのどこかに逃したものがあるかどうかを確認するように求めています。
それが手放さないクラスは次のとおりです:
x-focus x-btn-focus x-btn-default-toolbar-small-focus
これは、Windows7のFF10のExtJS4.1.0で使用されています。しかし、私はExtJS4.02と4.07で同様の動作に気付きましたが、今までそれを処理する必要はありませんでした。
解決
私はそれが何であるかを知りました:
これらの各ボタンのハンドラーチェーンのある時点で、ボタンは無効になります。ExtJSでボタンが無効になっていると、ボタンが無効になります。 blur
発射からのイベント。
ボタンを無効にする必要があったので、解決策は単に追加する必要がありました button.blur()
ハンドラーでは、それについて行くための正しい方法でした。