hasChildrenOver() {
        const target = this.target;
        if (target && (target.isOver() || target.hasChildrenOver())) return true;
        for (let i = 0, len = this.childrenTargets.length; i < len; ++i) {
          if (this.childrenTargets[i].isOver() || this.childrenTargets[i].hasChildrenOver()) return true;