I have the following JavaScript code:
var ans_el = document.createElement( 'input' );
ans_el.setAttribute( 'id', unique_int_value );
ans_el.setAttribute( 'type', 'radio' );
ans_el.setAttribute( 'name', 'group' );
ans_el.setAttribute( 'value', 'myValue' );
ans_el.onclick = myFunction( this.id, this.value );
// Add ans_el to DOM.
function myFunction( index, value ) { // do something }
This, of course, does not work as expected. At least not in Firefox 3.6. What happens is the onclick
event is fired when the element is created and the arguments passed to myFunction
are null. After the element is added to the DOM, the onclick
event does not fire when the radio button is select.
I'd be grateful if anyone has some insight into what's happening here, and/or how dynamically adding event handlers can be accomplished.