В вашей ситуации вы можете использовать концепцию «Делегирование событий» и заставить ее работать.
Делегирование событий использует тот факт, что событие, сгенерированное для элемента, будет продолжать пузыриться до его родителя, если нет больше родителей. Таким образом, вместо привязки события click к span, вы найдете событие click в вашем #pg_display div.
$(document).ready(
function()
{
$("#pg_display").click(
function(ev)
{
//As we are binding click event to the DIV, we need to find out the
//'target' which was clicked.
var target = $(ev.target);
//If it's not span, don't do anything.
if(!target.is('span'))
return;
alert('page #' + ev.target.id);
var data="<span id='page1'>1</span><span id='page2'>2</span><span id='page3'>3</span>";
$("#pg_display").html(data);
}
);
}
);
Рабочая демоверсия: http://jsbin.com/imuye
Код: http://jsbin.com/imuye/edit
Приведенный выше код имеет дополнительное преимущество, заключающееся в том, что вместо привязки 3 обработчиков событий он связывает только один.