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選共有

推薦する

WeChatアプレットが連携メニューを実現

最近はコース設計を実現するために、フロントエンドも少しやっています。今日はいくつかの機能を実現するた...

nginx-ingress-controller ログ永続化ソリューションのソリューション

最近、nginx-ingress-controller のアプリケーションについて説明した公開アカウ...

MySQLにおけるトランザクションの永続性実装原理の詳細な説明

序文データベース トランザクションに関して言えば、トランザクションの ACID 特性、分離レベル、解...

ブラウザがクロージャをどのように認識するかについて詳しく説明します

目次序文クロージャの紹介メモリのゴミを識別する方法クロージャのメモリ表現結論序文クロージャは、Jav...

TypeScript インターフェースの紹介

目次1. インターフェース定義2. 属性2.1 オプション属性2.2 読み取り専用プロパティ3. ク...

Webpackプラグインを書いてnpmに公開するための80行のコード

1. はじめに最近、 Webpackの原理を勉強しています。これまでは Webpack の設定方法し...

どのような種類の MYSQL 接続クエリを知っていますか?

序文クエリ情報が複数のテーブルから取得される場合、クエリのためにこれらのテーブルを結合する必要があり...

MySQLのROUND関数の丸め演算における落とし穴の分析

この記事では、MySQL の ROUND 関数を使用した丸め操作の落とし穴を例を使って説明します。ご...

実行中の時計を実装するための純粋な CSS3 コード

操作効果コードの実装html <div id="ウォッチ"> <...

コンテンツウェブページの画像プレビューのデザイン

<br />以前、「コンテンツページ番号のプレビューナビゲーション」と「写真プレビューナ...

Node.js における非同期プログラミングの知識ポイントの詳細な説明

導入JavaScript はデフォルトでシングルスレッドであるため、コードは並列実行するための新しい...

MySQL データベース内の数十億のデータを素早くクリーンアップする方法

今日、ディスクアラーム例外を受け取りました。50G ディスクが爆発しました。分析と解決のプロセスは次...

計算機機能を実装するミニプログラム

この記事の例では、計算機機能を実装するためのミニプログラムの具体的なコードを参考までに共有しています...

Linux システムに Spring Boot アプリケーションをインストールするための詳細なチュートリアル

Unix/Linux サービスsystemd サービス操作プロセス1. JDKがインストールされたC...

Dockerで同じIDを持つ2つのイメージを削除する

今日 Docker コンテナを作成したとき、誤ってイメージの名前を間違って入力しました。その結果、コ...