Elmにはどのようにフォーカスしていますか?私はどのようにを設定するエルムに焦点を当てるが、現在フォーカスを持っているものを検出するための機能を見つけることができません。Elm - 現在のフォーカスをどのように検出するのですか
3
A
答えて
7
elm-lang/domパッケージでは、IDを指定した要素にフォーカスを設定できますが、現在フォーカスされている要素を取得することはできません。これにはdocument.activeElement
を使用できることがわかります。これを行うには、ポートを使用する必要があります。
ここには例があります。現在選択されているIDとすぐに作成されるテキストボックスのすべてのIDのリストを含むModel
があるとします。私たちが使用する
type alias Model =
{ selected : Maybe String
, ids : List String
}
のMSGがフォーカスを問い合わせると同様にフォーカスを設定するには、ドムライブラリを使用することができるようになります:
:そのためにtype Msg
= NoOp
| FetchFocused
| FocusedFetched (Maybe String)
| Focus (Maybe String)
、我々は2つのポートが必要になります現在document.activeElement
について報告するこれらのポートを呼び出す
port focusedFetched : (Maybe String -> msg) -> Sub msg
port fetchFocused :() -> Cmd msg
のjavascript:
var app = Elm.Main.fullscreen()
app.ports.fetchFocused.subscribe(function() {
var id = document.activeElement ? document.activeElement.id : null;
app.ports.focusedFetched.send(id);
});
ビューには現在選択されているIDが表示され、下の番号のついたテキストボックスの1つにフォーカスを合わせるボタンのリストが表示されます。
update
機能はすべて一緒にそれを結び付け:ここ
update : Msg -> Model -> (Model, Cmd Msg)
update msg model =
case msg of
NoOp ->
model ! []
FetchFocused ->
model ! [ fetchFocused() ]
FocusedFetched selected ->
{ model | selected = selected } ! []
Focus (Just selected) ->
model ! [ Task.attempt (always NoOp) (Dom.focus selected), fetchFocused() ]
Focus Nothing ->
{ model | selected = Nothing } ! [ fetchFocused() ]
関連する問題
- 1. Apiコントローラで現在のブラウザをどのように検出しますか?
- 2. elmで現在の日付を取得するにはどうすればよいですか?
- 3. androidのListviewで現在選択されている項目にどのようにフォーカスするのですか?
- 4. WPFのXamlで現在のテーマを検出するにはどうすればよいですか?
- 5. 実行中のスレッドの現在のカルチャを検出するにはどうすればよいですか?
- 6. Facebook:ユーザーの現在のアクセス許可を検出するにはどうすればよいですか?
- 7. 現在のUIViewから遷移を検出するにはどうすればよいですか?
- 8. djangoで現在のドメイン名を検出するにはどうすればよいですか?
- 9. C#Web APIで現在のブラウザとデバイスを検出するにはどうすればよいですか?
- 10. Jekyllタグプラグインで現在のページを検出するにはどうすればよいですか?
- 11. 要素にフォーカスがあるかどうかを検出する
- 12. JQueryでは、現在フォーカスのある要素をどのように読み込むのですか?
- 13. ユーザーがウェブブラウザでサーフィンしているときに、マウスカーソルが現在どのホバーリンクを検出しているかをどのように検出できますか?
- 14. 現在の選択範囲をHTMLフォームにフォーカスするにはどうすればよいですか?
- 15. SimpleAudioEngineでサウンドエフェクトが現在再生中かどうかを検出
- 16. 現在のトピックを検出するにはどうすればよいですか?
- 17. Elmのブラウザを検出する方法
- 18. XSLTでどのように現在の要素パスを出力しますか?
- 19. どのViewControllerが現在アクティブかをどのように知るのですか
- 20. 現在のウィンドウが別のウィンドウの背後にあるかどうかをJavascriptで検出する方法
- 21. Open API経由でIntelliJの現在のテーマを検出するにはどうすればいいですか?
- 22. アプリケーションがフォーカスを取得するかどうかを検出する(ウィンドウのフォーカスではなく)
- 23. PHPで現在のIISのバージョンを検出するには?
- 24. フュージョンテーブルが現在行をインポートしているかどうかを検出する
- 25. Googleの検索結果でURLの出現を検索するにはどうすればよいですか?
- 26. MSMQが現在のシステムにインストールされているかどうかをプログラムで検出できますか。
- 27. elmでスプレッドシートアプリをどのように構築しますか?
- 28. 現在の変数と現在の変数を比較するにはどうすればよいですか?
- 29. c#asp.net - 別のスレッドで現在のページURLを検索するにはどうすればよいですか?
- 30. Pythonで現在のファイル、現在のクラス、および現在のメソッドを取得するにはどうすればよいですか?ファイルの