• execjosh's avatar
    Also stop at root when extracting CSS color · c8c67de8
    execjosh authored
    This change adds an additional check for whether the parent element
    is `null` or `undefined` in `$.color.extract`.  This can happen when
    working with elements that have not yet been added to the DOM under
    `<body>`.
    
    Consider the following example pie chart.
    
        var elm = $("<div />")
          .css({
            width: "240px"
          , height: "320px"
          })
        var data = [
          {label: "One", data: "33"}
        , {label: "Two", data: "33"}
        , {label: "Three", data: "33"}
        ]
        var opts = {
          legend: {
            show: true
          }
        , series: {
            pie: {
              show: true
            }
          }
        }
        $.plot(elm, data, opts)
        elm.appendTo($("body"))
    
    When flot inserts each legend row, it tries to use the same color as
    the corresponding graph part, unless it was explicitly specified in
    the options.  However, in this example, `$.color.extract` runs into
    an unexpected `null` reference because `<body>` is not an ancestor
    of `elm`.  Specifically, a `TypeError: Cannot read property
    'nodeName' of undefined` would be thrown.
    c8c67de8
jquery.colorhelpers.js 6.13 KB