Я не уверен насчет вашей первой проблемы, но я думаю, что вы можете решить вторую, используя live
( см. Документы jquery ) вместо click
$("#button").live('click', function(e){
e.preventDefault();
noPgLoad(this);
});
Чтобы кратко объяснить, когда вы используете click
, это относится только к элементам на странице.Я думаю, что ваш код $('somediv').replaceWith(data)
заменяет кнопку.Щелчки по новой кнопке не будут запускать обработчик, потому что он был добавлен после того, как обработчик был прикреплен.
Если вы используете live
, затем добавьте новую кнопку, затем щелчки по новой кнопке вызовут обработчик.