toolkit/javascript/d3/src/core/selection-style.js
author Nicolas Sauret <nicolas.sauret@iri.centrepompidou.fr>
Tue, 15 Apr 2014 17:46:09 +0200
changeset 48 1b2dffb4ac2b
parent 47 c0b4a8b5a012
permissions -rw-r--r--
add wiki (wikimd) delete publication (bootstrap)

d3_selectionPrototype.style = function(name, value, priority) {
  if (arguments.length < 3) priority = "";

  // If no value is specified, return the first value.
  if (arguments.length < 2) return window
      .getComputedStyle(this.node(), null)
      .getPropertyValue(name);

  function styleNull() {
    this.style.removeProperty(name);
  }

  function styleConstant() {
    this.style.setProperty(name, value, priority);
  }

  function styleFunction() {
    var x = value.apply(this, arguments);
    if (x == null) this.style.removeProperty(name);
    else this.style.setProperty(name, x, priority);
  }

  return this.each(value == null
      ? styleNull : (typeof value === "function"
      ? styleFunction : styleConstant));
};