Check if clicked element has specific tagname
I see two big problems with the code:


You are doing the recursive call inside the loop, so you will do each level four times. That will quickly escalade to a lot of calls. You should do the call after the loop, where you have determined that the node is not one in the array.
You are ignoring the result of the recursive call.


So:

function isClickable(elem) {
  for (i in ignore) {
    if (elem.nodeName.toLowerCase() === ignore[i]) {
      return true;
    }
  }
  if (elem.parentNode.nodeName.toLowerCase() !== 'body') {
    return isClickable(elem.parentNode);
  }
  return false;
};