DOM event delegation component