title: Get polymer parent element
body: <p>So I've been using Polymer for about a day now and I'm having trouble phrasing this question, so if my approach is way off base, please don't feel the need to fix this, rather point me in the right direction.</p>
  
  <p>What I have are custom elements within custom elements and I would like a child element to affect the parent's attributes.  The approach I'm taking is to create a click handler, closing the parent element in an IIFE, then passing that handler to the sub component. Like so...</p>
  
  <pre><code>Polymer({
    ready: function(){
       this.superHandler = (function(p) {
          return function() {
            // "this" here will be the sub-component
            p.title = this.title;
          }
       })(this);
    }
  });
  </code></pre>
  
  <p>Where the parent element uses it in it's template like...</p>
  
  <pre><code>&lt;polymer-element name="parent-element"&gt;
    &lt;template&gt;
      &lt;sub-element on-click={{superHandler}} /&gt;
    &lt;/template&gt;
  &lt;/polymer-element&gt;
  </code></pre>
  
  <p>This (in my real code, though it's possible there's typos here) works in everything but IE, and I know IE isn't officially supported, but it's so close I don't want to give up on it.  Things I want to avoid are repeated references to parentNodes and shadowRoots to get to the parent I'm looking for.</p>
  
  <p><strong>Edit</strong></p>
  
  <p>I forgot to mention how it's failing in IE, and why I want to avoid the parentNode call.  In IE, when it goes to dispatch the event specifically line 9131 of polymer.js, the variable "method" and the reference in obj[method] are strings in IE, and so have no method apply.  The reason I want to avoid the parentNode is because the caller isn't the direct parent, so I don't want to keep getting parentNodes until I find the right one, since the code is much more understandable when I can name the variable.</p>
  
  <p><strong>Edit 2</strong></p>
  
  <p>What I'm going with now (since it's working in IE9), though I'm leaving the question open for a better answer is to continue with the IIFE, returning a function that takes an argument that is the child.  Then the child will find the parent of interest by a querySelector.  This means the child has to have fore-knowledge of the parent and the method to call, which isn't ideal, but... IE.</p>
  
  <p>So the parent sets it up as...</p>
  
  <pre><code>Polymer('parent-element', {
    ready: function(){
       this.superHandler = (function(p) {
          return function(child) {
            p.title = chile.title;
          }
       })(this);
    }
  });
  </code></pre>
  
  <p>And the child must get it by a query selector, say by 'parent-element' and know the name 'superHandler' (not the actual name)</p>
  
  <pre><code>Polymer('child-element',{
          clickHandler: function(){
              var p = document.querySelector('parent-element').superHandler;
              p(this);
          }
      });
  </code></pre>
  
  <p>Better ideas?</p>