jQuery
New Wave Javascript


discuss » Binding events to newly added DOM elements


Posted: Wed Mar 8 11:45:05 EST 2006
From: Mike Alsup <malsup at gmail.com >

I'm seeing some odd behavior with event binding (IE6, IE7b2, FF1.5).
Given the following HTML:

<input id="bindTest" type="button" value="Bind" onclick="bindTest()" />

This method does not bind the click event for a newly created button:

function bindTest() {
var el = document.createElement("input");
$(el).set("id", "testButton").set("value", "Test
Button").set("type", "button");
$("#bindTest").after(el);

$(el).click(function() {
alert("button clicked");
});
}


but this method does:


function bindTest() {
var el = document.createElement("input");
$(el).set("id", "testButton").set("value", "Test
Button").set("type", "button");
$("#bindTest").after(el);

$("#testButton").click(function() {
alert("button clicked");
});
}