вы можете после вставки снова навесить обработчик
используя off on
события должны срабатывать если эвент навешен на элемент выше
использовать insertAdjacentHTML при вставке элемента
<div id="main"></div>
<script>
function buildElement(tagName, props) {
var element = document.createElement(tagName);
for (var propName in props) element.setAttribute(propName, props[propName]);
return element;
}
var el = buildElement('INPUT', {
type: 'button',
value: 'Click Me',
onclick: 'test(this)'
});
main.appendChild(el);
window.test = function (el) {
alert(el.value);
}
</script>
и ...