• js基础 ---- 事件委托的实战


    <!DOCTYPE html>
    <html lang="en">
    
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>地图栏</title>
    </head>
    
    <body>
        <!-- 为 ECharts 准备一个具备大小(宽高)的 DOM -->
        <div id="main" style=" 600px;height:400px;"></div>
        <div style="display: flex;" id='iptBox'>
            美国:<input id="countryA" value=10 /> 日本:
            <input id="countryJ" value=14 /> 中国:
            <input id="countryC" value=18 /> 德国:
            <input id="countryD" value=12 />
        </div>
    </body>
    <script src="https://cdn.bootcdn.net/ajax/libs/echarts/5.0.1/echarts.common.js"></script>
    <script>
        var myChart = echarts.init(document.getElementById('main'));
        var AGDP = document.getElementById('countryA').value;
        var JGDP = document.getElementById('countryJ').value;
        var CGDP = document.getElementById('countryC').value;
        var DGDP = document.getElementById('countryD').value;
        var arrGDP = [AGDP, JGDP, CGDP, DGDP];
        var iptBox = document.getElementById('iptBox');
        var option = {
            title: {
                text: '面试题1'
            },
            tooltip: {
    
            },
            legend: {
                data: ['GDP']
            },
            xAxis: {},
            yAxis: {
                data: ['美国', '日本', '中国', '德国']
            },
            series: [{
                name: 'GDP',
                type: 'bar',
                data: arrGDP
            }]
        }
        myChart.setOption(option, true)
            //通过事件委托来修input的value值 减少DOM操作来优化性能
        iptBox.addEventListener('change', (e) => {
            let ev = e || window.event;
            console.log(ev.target.id == 'countryA')
            let elId = ev.target.id
            switch (elId) {
                case 'countryA':
                    arrGDP[0] = ev.target.value
                    break;
                case 'countryJ':
                    arrGDP[1] = ev.target.value
                    break;
                case 'countryC':
                    arrGDP[2] = ev.target.value
                    break;
                case 'countryD':
                    arrGDP[3] = ev.target.value
                    break;
            }
            option.series[0].data = arrGDP
            myChart.setOption(option, true)
        })
    </script>
    
    </html>
    

      

  • 相关阅读:
    基于AVPlayer的音乐播放器
    java中关于正则一些基础使用
    随笔08.09
    我的Android笔记--我对安卓系统的一些了解
    2016/06/16
    Objective-C(iOS)严格单例模式正确实现
    Swift轻松入门——基本语法介绍和详细地Demo讲解(利用WebView打开百度、新浪等网页)
    GCD学习之dispatch_barrier_async
    iOS自学之NSOperation、NSOperationQueue、Background
    docker run mysql
  • 原文地址:https://www.cnblogs.com/qlb-7/p/14523870.html
Copyright © 2020-2023  润新知