added Gruntfile, package.json and component.json
now traverse element's parentNode to find a match

some events doen't bubble well, so we have to traverse its parentNodes to check if it match
added a new test