So, given that the first "on('change', function() " works and the second does not I would say that you are correct that the code does not establish the change handler execute after the DOM elements have been created. How do I ensure this please?
Why are you not setting up the change handler in the same code that creates the element?
In general $('some-selector') evaluates to the empty set whenever the selector matches nothing. So attempting to establish a handler for elements that don't exist yet won't work. The best approach is to establish the handler for new elements when the element is created.
If for some reason that is not possible, then event delegation can come into play, but that's only an option if all others fail.