попробуйте поставить на body. Если вам этого будет хватать, то почему нет? Если будет не хватать, разнесете уже в процессе. У меня на body стоят всевозможные универсальные штуки, но иногда есть желание вызвать обработчик до того как событие всплывет до body. Тут два варианта, либо в разметке onClick и т д Либо анализировать вставляемый контент. У меня так развешиваются обработчики для хитрых динамических графиков и таблиц.
Вот пример взял посложнее, я использую этот статический класс для регистрации обработчиков и последующего вызова, вот он примерно(взяты кускт двух разных классов):
ajax.answerParse=function()
{
if ((this.target) && (this.answer.html!==null))
{
this.target.innerHTML=this.answer.html;
//experimental
contentHandlers.placeAll(this.target);
}
}
contentHandlers.placeAll=function(targetObj)
{
for (var i=0, len=this.collection.length; i<len; i++)
{
this.placeCurrent(targetObj, this.collection[i]);
}
}
contentHandlers.placeCurrent=function(targetObj, handlerObj)
{
var handlerTargets=targetObj.querySelectorAll(handlerObj.selector);
for (var i=0,len=handlerTargets.length; i<len; i++)
{
if (handlerObj.event)
{
handlerTargets[i].addEventListener(handlerObj.event, handlerObj.handler.bind(handlerObj, handlerTargets[i]));
}
else
{
handlerObj.handler.call(handlerObj, handlerTargets[i]);
}
}
}