Vue の echarts ツールチップにクリック イベントを追加する詳細な説明

Vue の echarts ツールチップにクリック イベントを追加する詳細な説明

必要

詳細ページにジャンプするには、echarts ツールチップの学校名をクリックする必要があります。プロジェクトは上海から ---> 特定の地区 ----> 特定の学校 (最後のレベルのツールチップでクリック イベントをバインド)

このプロジェクトは、vue と echarts を使用して実装されています。echarts は新しいバージョン (^5.0.2) であり、クリック イベントをウィンドウにバインドできません。

回避策

1. ツールチップを設定する

enterable: true, //マウスがプロンプトフローティングレイヤーに入ることを許可します。triggeron:'click', //プロンプトボックスがトリガーされる条件。mousemove はマウスが動くとトリガーされます。click はマウスがクリックするとトリガーされます。'mousemove|click' はマウスが動くと同時にクリックするとトリガーされます。

ツールチップ: {
          //プロンプト ボックス コンポーネントshow: true、//プロンプト ボックス コンポーネントを表示trigger: "item"、//トリガー タイプtriggerOn: "mousemove"、//出発条件//formatter: "name:{b><br/>coordinates:{c}"、
          enterable: true, //マウスがプロンプトサスペンションレイヤーに入ることを許可する showContent: true,
          triggerOn: "click", // ツールチップをトリガーする条件 mousemove マウスが動くとトリガー click マウスがクリックするとトリガー 'mousemove|click' マウスが動くと同時にクリックするとトリガー // confine: true, // ツールチップをチャートの領域に制限 className: "areaTool",
          // hideDelay: 100000, // 消失時間を遅延する formatter: (item) => {
            this.hookToolTip = アイテム;
            // 経度と緯度が長すぎるため、小数点以下 7 桁を残して桁数を切り捨てて表示する必要があります // クリック イベントをバインドする必要があります var tipHtml = "";
            ヒントHtml =
              '<div style="width:2.5rem;height:80%;background:rgba(22,80,158,0.8);border:0.0125rem solid rgba(7,166,255,0.7)">' +
              '<div style="width:100%;height:0.375rem;line-height:0.375rem;border-bottom:0.025rem solid rgba(7,166,255,0.7);">' +
              '<i style="display:inline-block;width:0.125rem;height:0.125rem;background:#16d6ff;border-radius:0.5rem;">' +
              "</i>" +
              '<span id="btn-tooltip" style="margin-left:0.125rem;color:#fff;font-size:0.2rem;cursor:pointer">' +   
              アイテム名 +
              "</span>" +
              "</div>" +
              '<div style="padding:0.1875rem;text-align: left;">' +
              '<p style="color:#fff;font-size:0.15rem;">' +
              '<i style="display:inline-block;width:0.1rem;height:0.1rem;background:#16d6ff;border-radius:0.5rem;margin:0 0.1rem">' +
              "</i>" +
              「経度」+
              '<span style="color:#11ee7d;margin:0 0.075rem;">' +
              項目.値[0].substr(0, 11) +
              "</span>" +
              "</p>" +
              '<p style="color:#fff;font-size:0.15rem;">' +
              '<i style="display:inline-block;width:0.1rem;height:0.1rem;background:#16d6ff;border-radius:0.5rem;margin:0 0.1rem">' +
              "</i>" +
              「緯度」+
              '<span style="color:#11ee7d;margin:0 0.075rem;">' +
              項目.値[1].substr(0, 11) +
              "</span>" +
              "</p>" +
              '<p style="color:#fff;font-size:0.15rem;">' +
              '<i style="display:inline-block;width:0.1rem;height:0.1rem;background:#16d6ff;border-radius:0.5rem;margin:0 0.1rem">' +
              "</i>" +
              「診察室数」+
              '<span style="color:#11ee7d;margin:0 0.075rem;">' +
              アイテム.コンポーネントインデックス +
              "</span>" +
              「個」+
              "</p>" +
              '<p style="color:#fff;font-size:0.15rem;">' +
              '<i style="display:inline-block;width:0.1rem;height:0.1rem;background:#16d6ff;border-radius:0.5rem;margin:0 0.1rem">' +
              "</i>" +
              「プロクター」+
              '<span style="color:#11ee7d;margin:0 0.075rem;">' +
              アイテム.コンポーネントインデックス +
              "</span>" +
              「個」+
              "</p>";

            tipHtml を返します。
          },
        },

2. hookToolTip変数を定義する

フォーマッタの hookToolTip に値を割り当て、ID を追加し、watch を通じて DOM 要素を検出します。onclick を通じてイベントをバインドするか、addEventListerner を通じてイベントを登録できます。

時計:
    フックツールチップ: {
      ハンドラ(newVal, oldVal) {
        console.log(newVal, oldVal, "---------watch");
        tooltipButton を document.querySelectorAll("#btn-tooltip");
        //onclickイベントquerySelectorAllを登録して取得した要素は配列ですif (tooltipButton.length > 0) {
          ツールチップボタン[0].onclick = this.pointNameClick;
        }
        // addEventListener を通じてイベントを登録します for (let i = 0; i < tooltipButton.length; i++) {
          ツールチップボタン[i].addEventListener("クリック", this.chartClick);
        }
      },
      // 即時: true、
      // 深い: true、
    },
  },

3. メソッド内にメソッドを追加する

4. 完全なコード

データ(){
       フックツールチップ: {},     
},

  時計:
    フックツールチップ: {
      ハンドラ(newVal, oldVal) {
        console.log(newVal, oldVal, "---------watch");
        tooltipButton を document.querySelectorAll("#btn-tooltip");
        //onclickイベントquerySelectorAllを登録して取得した要素は配列ですif (tooltipButton.length > 0) {
          ツールチップボタン[0].onclick = this.pointNameClick;
        }
        // addEventListener を通じてイベントを登録します for (let i = 0; i < tooltipButton.length; i++) {
          ツールチップボタン[i].addEventListener("クリック", this.chartClick);
        }
      },
      //確認するためにページに入る必要はありません//immediate: true,
      // 深い: true、
    },
  },

  メソッド: {
    チャートクリック() {
      コンソール.log(
        this.hookToolTip、
        "-------イベントリストを追加",
        this.hookToolTip.name
      );
    },
 },

    
//eチャート
      ツールチップ: {
          //プロンプト ボックス コンポーネントshow: true、//プロンプト ボックス コンポーネントを表示trigger: "item"、//トリガー タイプtriggerOn: "mousemove"、//出発条件//formatter: "name:{b><br/>coordinates:{c}"、
          enterable: true, //マウスがプロンプトサスペンションレイヤーに入ることを許可する showContent: true,
          triggerOn: "click", // ツールチップをトリガーする条件 mousemove マウスが動くとトリガー click マウスがクリックするとトリガー 'mousemove|click' マウスが動くと同時にクリックするとトリガー // confine: true, // ツールチップをチャートの領域に制限 className: "areaTool",
          // hideDelay: 100000, // 消失時間を遅延する formatter: (item) => {
            this.hookToolTip = アイテム;
            console.log(item, "-----", this.hookToolTip);
            // 経度と緯度が長すぎるため、小数点以下 7 桁を残して桁数を切り捨てて表示する必要があります // クリック イベントをバインドする必要があります var tipHtml = "";
            ヒントHtml =
              '<div style="width:2.5rem;height:80%;background:rgba(22,80,158,0.8);border:0.0125rem solid rgba(7,166,255,0.7)">' +
              '<div style="width:100%;height:0.375rem;line-height:0.375rem;border-bottom:0.025rem solid rgba(7,166,255,0.7);">' +
              '<i style="display:inline-block;width:0.125rem;height:0.125rem;background:#16d6ff;border-radius:0.5rem;">' +
              "</i>" +
              '<span id="btn-tooltip" style="margin-left:0.125rem;color:#fff;font-size:0.2rem;cursor:pointer" onclick="chartClick">' +
              アイテム名 +
              "</span>" +
              "</div>" +
              '<div style="padding:0.1875rem;text-align: left;">' +
              '<p style="color:#fff;font-size:0.15rem;">' +
              '<i style="display:inline-block;width:0.1rem;height:0.1rem;background:#16d6ff;border-radius:0.5rem;margin:0 0.1rem">' +
              "</i>" +
              「経度」+
              '<span style="color:#11ee7d;margin:0 0.075rem;">' +
              項目.値[0].substr(0, 11) +
              "</span>" +
              "</p>" +
              '<p style="color:#fff;font-size:0.15rem;">' +
              '<i style="display:inline-block;width:0.1rem;height:0.1rem;background:#16d6ff;border-radius:0.5rem;margin:0 0.1rem">' +
              "</i>" +
              「緯度」+
              '<span style="color:#11ee7d;margin:0 0.075rem;">' +
              項目.値[1].substr(0, 11) +
              "</span>" +
              "</p>" +
              '<p style="color:#fff;font-size:0.15rem;">' +
              '<i style="display:inline-block;width:0.1rem;height:0.1rem;background:#16d6ff;border-radius:0.5rem;margin:0 0.1rem">' +
              "</i>" +
              「診察室数」+
              '<span style="color:#11ee7d;margin:0 0.075rem;">' +
              アイテム.コンポーネントインデックス +
              "</span>" +
              「個」+
              "</p>" +
              '<p style="color:#fff;font-size:0.15rem;">' +
              '<i style="display:inline-block;width:0.1rem;height:0.1rem;background:#16d6ff;border-radius:0.5rem;margin:0 0.1rem">' +
              "</i>" +
              「プロクター」+
              '<span style="color:#11ee7d;margin:0 0.075rem;">' +
              アイテム.コンポーネントインデックス +
              "</span>" +
              「個」+
              "</p>";

            tipHtml を返します。
          },
        },

Vue が echarts ツールチップにクリック イベント ケースを追加する方法についてはこれで終わりです。Vue 関連のコンテンツをさらにご覧になりたい場合は、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続きご覧ください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • VueはIDの動的な割り当てと、現在クリックされている要素のID操作を取得するクリックイベントを実装しています。
  • Vue クリックイベントでパラメータを渡す場合と渡さない場合の違いの詳細な説明
  • VUEはv-htmlがクリックイベントをトリガーできない問題を解決します
  • Vue v-for ループ @click クリックイベントで要素を取得する例
  • Vueコンポーネントのグローバルクリックイベントメソッドを取得する
  • Vueでクリックイベントのソースを取得する方法
  • クリックイベントを通じてオーディオファイルを読み取るVueメソッド
  • Vueバインディングオブジェクト内の無効なクリックイベントの問題を解決する
  • Vue プロジェクトはクリックイベント操作を追加する echarts を導入しました
  • Vueはhightchartsを使用して凡例のクリックイベントをカスタマイズします

<<:  HTML での非同期ファイルアップロードの例

>>:  海外のウェブページのカラーマッチング事例20選共有

推薦する

Nginx で IP と IP 範囲をブロックする方法

前面に書かれたNginx は単なるリバース プロキシおよび負荷分散サーバーではなく、電流制限、キャッ...

echartsマップカルーセルハイライトを解決するための記事

目次序文やることリストやるだけ地図を準備するインスタンスをバックアップ用に保存するタイマーカルーセル...

MyISAMとInnoDBの違いについてお話しましょう

主な違いは次のとおりです。 1. MySQL はデフォルトで MyISAM を使用します。 2. M...

VUE のコンパイル スコープとスロット スコープのスロットの問題について

スロットとは何ですか?スロット ディレクティブは v-slot であり、現在 slot と slot...

CSS で透明なグラデーション効果を実装するためのサンプルコード

Zhihu Discovery コラムのタイトル画像は、通常、以下のように表示されます。明らかに、グ...

MySQL 8.0.18 インストール構成の最適化チュートリアル

MySQLのインストール、設定、最適化は参考用です。具体的な内容は次のとおりです。 MySQL ダウ...

Nodejs 組み込み暗号化モジュールを使用してピアツーピアの暗号化と復号化を実現する詳細な説明

暗号化と復号化は、通信のセキュリティを確保するための重要な手段です。すでに多くの暗号化アルゴリズムが...

XAML でボタンを円として再描画する方法

XAML レイアウトを使用する場合、インターフェイスを Metro 風にするために、一部のボタンでは...

VMware ESXi のインストールと使用記録(ダウンロード付き)

目次1. ESXiをインストールする2. ESXiをセットアップする3. ESXiを起動するESXi...

Dreamweaver8を使用してウェブサイトのファイルをチェックして整理する方法

Dreamweaver8 を使用して独自の Web サイトを作成する目的は何ですか?インターネットに...

MySQL は、現在のデータ テーブル内のすべての時間に対して指定された時間間隔を増加または減少させます (推奨)

DATE_ADD() 関数は、指定された時間間隔を日付に追加します。現在のテーブル内のすべてのデー...

MySQLの実行プロセスとシーケンスについての簡単な説明

目次1:mysql実行プロセス1.1: コネクタ1.2: キャッシュ1.3: アナライザー1.4: ...

HTML のオートコンプリートを無効にして履歴を表示しないようにする

入力ボックスには、コンテンツを入力するときに常に入力履歴が表示されます。これを無効にする現在の方法は...

iframe src 割り当ての問題 (サーバー側)

今日この問題に遭遇しました。サーバー側でiframeのsrc値を再割り当てし、iframeにIDを追...

カルーセルカルーセルケースのJS実装

この記事の例では、カルーセルカルーセルを実装するためのJSの具体的なコードを参考までに共有しています...