私は国籍管理が適切に行われていないことに悩んでいたので、時間をかけて国籍管理を作成し、みんなと共有しました。
主な機能とインターフェースの紹介
国籍制御は主に中国語と英語のフィルタリングとキーボードの上下イベントをサポートします。
ソースコードの紹介
国籍管理の中核は、navtionality.js と mian.css の 2 つのファイルです。 navtionality.js の主な機能は国籍コントロールの DOM 構築と、対応するイベント バインディングです。main.css は主に国籍コントロールのスタイルをレンダリングするために使用されます。そしてmain.jsは国籍制御の呼び出しメソッドです。
HTML 構造
ページに国籍コントロールを表示するには、コントロールを読み込むページに国籍コントロールを事前に設定する必要があります。 control-nationality-suggest はコンテナ、input は入力受付、nationality-suggest-list-container はプロンプトリストで、フィルタリングされた国籍リストを表示するために使用されます。
ナビゲーション性は国籍制御の中核であり、主にデータ フィルタリング、DOM レンダリング、および国籍制御の対応するイベント バインディングを担当します。 init は、コントロール全体への入り口です。特定のバインディング オブジェクトは、渡されたオプション パラメーターによって決定されます。
クイック検索の概要
国籍管理全体において、検索は最も重要な部分であり、ユーザーの入力に基づいて、対応する国籍データをどのようにフィルタリングするかが重要です。私たちが採用する方法は、通常のマッチング方法です。まず国籍データをフォーマットします
。たとえば、元の国籍データは次のようになります: [{ id: "CN", en: "中国", cn: "中国本土" }, { id: "HK", en: "香港", cn: "香港、中国" }, { id: "MO"、en: "マカオ"、cn: "マカオ、中国" }
フォーマットされたデータは次のようになります: #CN|中国|中国本土##HK|香港|中国香港##MO|マカオ|中国マカオ##
なぜこれを行うのでしょうか?データの高速マッチングを実現するには正規表現を使用する必要があるためです。
正規一致を見て、ほとんどのことを理解できたはずです。はい、正規表現を使用して、元の配列を文字列に変換することでデータをすばやくフィルタリングします。
トラバーサルによって実装した検索方法と比較すると、正則化の効率がはるかに高いことがわかります。
main.js の紹介
Main は国籍コントロールを呼び出し、ページ内で calss が control-nationality-suggest である DOM オブジェクトをトラバースすることで国籍コントロールをバインドするメソッドです。
デモとダウンロード