カスタムポップアップボックスを実装するためのJavaScriptシングルトンモード

カスタムポップアップボックスを実装するためのJavaScriptシングルトンモード

この記事では、カスタムポップアップボックスを実装するためのJavaScriptシングルトンモードの具体的なコードを参考までに紹介します。具体的な内容は次のとおりです。

関数

  • ポップアップタイトルをカスタマイズする
  • ポップアップコンテンツをカスタマイズする
  • ポップアップウィンドウの確認と閉じるためのコールバック関数をカスタマイズする

完全なコード

const ダイアログ = (関数 () {
 クラスダイアログ{
   コンストラクタ(){
     this.ele = document.createElement('div')
     this.ele.className = 'ダイアログ'
     document.body.appendChild(this.ele)
     this.callback = null
     イベントを設定する
   }
 
   setContent ({ テキスト、トピックテキスト、確認テキスト、キャンセルテキスト } = オプション) {
     this.ele.innerHTML = null
     定数 top = document.createElement('div')
     top.className = 'top'
     定数トピック = document.createElement('span')
     topic.className = 'トピック'
     topic.innerHTML = トピックテキスト
     定数close = document.createElement('span')
     close.className = 'close'
     close.innerHTML = '×'
     top.appendChild(トピック)
     top.appendChild(閉じる)
     const 中間 = document.createElement('div')
     middle.className = 'middle'
     定数コンテンツ = document.createElement('div')
     content.className = 'コンテンツ'
     content.innerHTML = テキスト
     middle.appendChild(コンテンツ)
     定数ボトム = document.createElement('div')
     bottom.className = 'bottom'
     const 確認 = document.createElement('button')
     confirm.className = '確認'
     確認.innerHTML = 確認テキスト
     const キャンセル = document.createElement('button')
     cancel.className = 'キャンセル'
     キャンセル.innerHTML = キャンセルテキスト
     bottom.appendChild(確認)
     bottom.appendChild(キャンセル)
     定数 wrap = document.createElement('div')
     this.ele.appendChild(トップ)
     this.ele.appendChild(中間)
     this.ele.appendChild(下)
     this.ele.style.display = 'ブロック'
   }
 
   イベントを設定する(){
     this.ele.addEventListener('クリック', e => {
       e = e || ウィンドウイベント
       定数ターゲット = e.target || e.srcElement
       (target.className === 'close')の場合{
         this.ele.style.display = 'なし'
         コンソールログ('閉じる')
       }
       (target.className === '確認')の場合{
         this.ele.style.display = 'なし'
         this.callback(true)
       }
       target.className === 'キャンセル'の場合{
         this.ele.style.display = 'なし'
         this.callback(false)
       }
     })
   }
 }
 インスタンス = null とする
 関数を返す(オプション、cb){
   if (!instance) インスタンス = new Dialog()
   インスタンス.setContent(オプション)
   インスタンス.コールバック = cb || 関数 () {}
   インスタンスを返す
 }
 })()
 
 const ダイアログ = 新しいダイアログ({
 テキスト: 'プロンプトテキスト'、
 topicText: 'タイトル',
 confirmText: '確認',
 cancelText: 'キャンセル'
 }, res => { console.log(res) })

レンダリング

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • js+html5は半透明マスクレイヤーポップアップボックスの効果を実現します
  • vue.js でのトーストの使用法とトーストポップアップボックスを使用したサンプルコード
  • jsカスタムポップアップボックスプラグインのカプセル化
  • jsポップアップボックスの表示オプションを簡単に実装
  • Vue.jsはポップアップウィンドウを一度だけ実装します
  • jsを使用して、上、下、左、右のポップアップボックスの効果を実現します。
  • layer.js に基づいて配送先住所ポップアップボックスの選択を実装し、対応する住所情報を返します。
  • 閉じられないポップアップボックスを実現するJavaScript
  • 自家製ポップアップボックスを使用した Bootstrap と Angularjs のサンプルコード
  • js はアラート イベントを書き換えます (アラート ポップアップ ボックスのタイトルに URL が表示されないようにします)

<<:  MySQLスレーブのメンテナンスに関する経験の共有

>>:  nginx の場所に複数の Proxy_pass メソッドがある

推薦する

MySQL エラー「すべての派生テーブルには独自のエイリアスが必要です」の解決方法

MySQL は、マルチテーブルクエリを実行するときにエラーを報告します。 [SQL] SELECT ...

CSS3 で実装された画像ホバートグルボタン

結果:実装コードhtml <ul class="スライド"> <...

js を使用してネットワークカメラを呼び出し、一般的なエラーを処理します

最近、業務上の理由により、Web ページ上のさまざまなネットワーク カメラにアクセスしてデバッグする...

ElementuiはデータをxlsxとExcelテーブルにエクスポートします

最近、Vue プロジェクトについて知り、ElementUI でデータを xlsx および Excel...

CSSを使用して炎の効果を作成する方法

本文は以下から始まります。 123WORDPRESS.COM ダウンロード:純粋な CSS3 で超リ...

Vue命令の実装原理の分析

目次1. 基本的な使い方2. 指示の動作原理2.1. 初期化2.2 テンプレートのコンパイル2.3....

JavaScript における継承の 3 つの方法

継承する1. 継承とは何か継承: まず、継承とは関係、つまりクラス間の関係です。JS にはクラスはあ...

JavaScript でネットワーク速度をテストする方法

目次序文ネットワーク速度のフロントエンド判定原理のまとめ1. img を読み込むか Ajax リクエ...

CentOS 8 / RHEL 8 に VirtualBox 6.0 をインストールするための詳細なチュートリアル

VirtualBox は、技術者が異なる種類の複数の仮想マシン (VM) を同時に実行できるようにす...

Ubuntu Linux に Git と GitHub をインストールして使用する

Git 入門Git は、Linux(R) カーネル開発の管理を支援するために 2005 年に Lin...

CentOS7 上で KVM 仮想化プラットフォームを構築する (3 つの方法)

KVM はカーネルベースの仮想マシンの略で、Linux をハイパーバイザーに変換する Linux ...

MySQL がテーブルを読み取れないエラー (MySQL 1018 エラー) の解決方法

1. エラーの再現MySQL データベースにはアクセスできますが、データベース テーブルを読み取るこ...

PSを使用して2分でxhtml+cssウェブサイトのホームページを作成します

xhtml+css のウェブサイト再構築、ウェブ標準などについては、記事が多すぎるので繰り返しません...

Nginx 逆生成 Mogilefs 分散ストレージ例の詳細な説明

1. 分散ストレージシステムの概要情報技術の継続的な発展により、利便性がもたらされる一方で、データ量...

シンプルなデータ応答システムを実装する

目次1. デップ2. 観察者を理解する3. 監視と観察者を理解する4. トリガーの依存性5. プロセ...