カスタムポップアップボックスを実装するための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 5.x 以降を使用している場合のエラー #1929 列 ''createtime'' の日付時刻値が正しくありません: '''' の簡単な解決方法

MySQL をインストールした後、テーブル データを保存および削除しようとすると、常にエラー メッセ...

Docker と Intellij IDEA の融合により、Java 開発の生産性が 10 倍向上

目次1. 開発前の準備2. 新しいプロジェクトIdea は Java 開発のための強力なツールであり...

MySQL スケジュールタスク例チュートリアル

序文MySQL 5.1.6 以降、非常にユニークな機能であるイベント スケジューラが追加されました。...

Docker環境でMySQLを実行し、Binlogを有効にしてマスタースレーブ同期を構成する方法

同じサーバーで、Docker を使用して Mysql のマスター スレーブ同期設定をシミュレートしま...

Nginx ロードバランシングの設定方法

目次Nginx 負荷分散構成Nginx 負荷分散戦略ポーリング(デフォルト)重さip_ハッシュ公正(...

MySQLでテーブルデータを削除する方法

MySQL でデータを削除する方法は 2 つあります。1 つは DELETE ステートメント、もう ...

24 の実用的な JavaScript 開発のヒント

目次1.配列を初期化する2. 配列の合計、最大値、最小値3. エラー値をフィルタリングする4. 論理...

Docker を使用して ELK ログ システムを構築する例

以下のインストールではすべて、インストール ルート ディレクトリとして ~/ ディレクトリが使用され...

CN2、GIA、CIA、BGP、IPLC はどういう意味ですか?

CN2ラインとは何ですか? CN2 は、China Telecom Next Carrier Ne...

WeChatアプレットのスクロールビューが左右の連動を実現

この記事では、WeChatアプレットのスクロールビューの左右連動を実現するための具体的なコードを参考...

カルーセル例の JS 実装

この記事では、カルーセルチャートの小さなケースを実装するためのJSの具体的なコードを参考までに共有し...

JQuery データグリッドクエリの詳細な説明

目次ツリー項目にコードを追加します。 1. 右側に関連情報ページを保存します(userManage....

Ubuntuデュアルシステムが起動時に停止する問題の解決方法の詳細な説明

起動時に Ubuntu デュアル システムが停止する問題の解決方法 (Ubuntu 16.04 およ...

Linuxでシンボリックリンクを削除(削除)するコマンド

Linux では、シンボリック リンクを作成または削除する必要がある場合があります。もしそうなら、何...

HTML+CSS でハートビートの特殊効果を作成する

今日は、シンプルなハートビート効果を作成します。多くのコードは必要ありません。ボックスを追加し、CS...