zoukankan      html  css  js  c++  java
  • d3.js不支持attr和style像jquery一样传入多个对象,重写attr和style方法

    import * as d3 from 'd3';
    // 重写d3的attr和style支持传入对象
    const oldAttr = d3.selection.prototype.attr;
    d3.selection.prototype.attr = function () {
      if (arguments.length === 1) {
        if (typeof arguments[0] === 'object') {
          for (const item in arguments[0]) {
            oldAttr.call(this, item, arguments[0][item]);
          }
          return this;
        }
        return oldAttr.call(this, arguments[0]);
      } else if (arguments.length === 2) {
        return oldAttr.call(this, arguments[0], arguments[1]);
      }
    };
    const oldStyle = d3.selection.prototype.style;
    d3.selection.prototype.style = function () {
      if (arguments.length === 1) {
        if (typeof arguments[0] === 'object') {
          for (const item in arguments[0]) {
            oldStyle.call(this, item, arguments[0][item]);
          }
          return this;
        }
        return oldStyle.call(this, arguments[0]);
      } else if (arguments.length === 2) {
        return oldStyle.call(this, arguments[0], arguments[1]);
      }
    };

    转载自:http://www.codezd.com/js/271.html

  • 相关阅读:
    js获取浏览器和屏幕的各种宽度高度
    闭包
    原型与原型链
    vuex
    微信小程序天使童装答辩
    vue脚手架本地开发跨域请求设置
    mvvm和mvc
    Vue 中 methods,computed, watch 的区别
    keep-alive
    YII2组件之GridView
  • 原文地址:https://www.cnblogs.com/xiaoyaoweb/p/13274164.html
Copyright © 2011-2022 走看看