Is there a way to have this prototype js trigger only when dom is changed and not loaded?
you can observe elements changing like this
$('element').observe('change',function(e){ } );
This is reserved for form elements though - textarea, select and input.
The final code would look something like:
document.observe('dom:loaded', function() {
$('element').observe('change',function(e){
// do something here
});
});
The 'change' method is defined only for 'input', 'textarea' and select elements, not for general elements.
The "dom:loaded" event is a user-defined event (as far as the browser is concerned) defined by the Prototype library. I don't believe that it is usable as any kind of template for a dom:changed event.
What you are looking for are DOM mutation events, such as DomSubtreeModified (see 1). But I don't believe these are widely supported in browsers yet.