カスタムポップアップボックスを実装するための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 メソッドがある

推薦する

Vueブラウザが監視を再開するための具体的な手順

序文ページを共有するときに、ブラウザの戻るボタンをクリックしてプロジェクトのホームページに戻り、訪問...

iframe を使用して Web ページに他の Web ページを埋め込む方法

iframe の使い方:コードをコピーコードは次のとおりです。 <DIV align=cent...

UbuntuでGRUBの起動時間を変更する

grubの起動時間を変更するためのオンライン検索は基本的に/etc/default/grubを変更す...

Linuxでディスクをマウントする方法

仮想マシンを使用しているときに、ディスク容量が不足し、継続使用するためにディスクをマウントする必要が...

XHTMLコードの一般的なアプリケーション問題をまとめる

<br />しばらくの間、多くの人が XHTML の使い方を知らないことに気付きました。...

TypeScript 3.7 で注目すべき 3 つの新機能について簡単に説明します。

目次序文オプションの連鎖ヌル結合呼び出されていない関数のチェック他の序文TypeScript 3.7...

カレンダー効果を実現するJavaScript

この記事では、カレンダー効果を実現するためのJavaScriptの具体的なコードを参考までに紹介しま...

nginx ウェブサイト サービスのアンチホットリンクを設定する方法 (推奨)

1. ホットリンクの原則1.1 Webページの準備Web ソース ホスト (192.168.153...

Alibaba Cloud Server Tomcatにアクセスできません

目次1. はじめに2. 解決策2.1 ファイアウォールを設定してポートを開く2.3 ポートを確認し、...

Bash スクリプトを使用して Linux のメモリ使用量を監視する方法

序文Linux システムのパフォーマンスを監視するために使用できるオープンソースの監視ツールが市場に...

Vueの子コンポーネントが親コンポーネントのメソッドを呼び出す場合の詳細な説明

1. 子コンポーネントのthis.$parent.eventを通じて親コンポーネントメソッドを直接呼...

MySql5.7.21 インストールポイント記録メモ

ダウンロードしたバージョンは、Zip 解凍版、Windows システムです。長い間 Windows ...

MySQL 5.7.20 の解凍バージョンをインストールするための詳細な手順 (2 つの方法)

Windows 64ビットでのMySQLのインストールについて説明します。5.7以降、MySQLの...

Vueは単一ファイルコンポーネントの完全なプロセス記録を実装します

目次序文単一ファイルコンポーネント基本概念シンプルなローダーコンポーネントコンテンツの解析コンポーネ...

CentOS の環境変数と設定ファイルの詳細な説明

序文CentOS 環境変数設定ファイル システムは階層型システムであり、他のマルチユーザー アプリケ...