I have this loop creating multiple divs with elements in it. I want to be able to attach a click event to every link with a linky class, and that link will read the contentID attribute.
Iβm looking for it forever, I find cases of using selectors in dynamically created elements, but I just canβt apply to my case. Any tips?
for (i = 0; i < msg.length; i++) { var htmlCode = "<a href='/Controller/Details/" + msg[i].ID + "' style = 'float: left;'><img class='packageImage' border='0' src='" + msg[i].Size0Path + "' /></a>"; htmlCode += "<span style='float: left;margin: 5px 0px 0px 10px;'>" + "<b>" + msg[i].TheName + "</b><br>"; if (msg[i].IsPaused == true) { htmlCode += "<a href='#bar' class=linky contentID='" + msg[i].ID + "'>Resume</a>"; } else { htmlCode += "<a href='#bar' class=linky contentID='" + msg[i].ID + "'>Pause</a>"; } htmlCode += "</span>"; htmlCode += "<div class='clear'></div>"; $("#divContent").append(htmlCode); }
Given the answers, I'm trying to attach an event to the linky class, but I just don't know where, as more on this below, my instructions create dynamic elements from the result of ajax submit (post).
success: function (msg) { $("body").on("click", "a.linky", function () { alert($(this).attr("contentID")); }); for (i = 0; i < msg.length; i++) { var htmlCode = "<a href='/Controller/Details/" + msg[i].ID + "' style = 'float: left;'><img class='packageImage' border='0' src='" + msg[i].Size0Path + "' /></a>"; htmlCode += "<span style='float: left;margin: 5px 0px 0px 10px;'>" + "<b>" + msg[i].TheName + "</b><br>"; if (msg[i].IsPaused == true) { htmlCode += "<a href='#bar' class=linky contentID='" + msg[i].ID + "'>Resume</a>"; } else { htmlCode += "<a href='#bar' class=linky contentID='" + msg[i].ID + "'>Pause</a>"; } htmlCode += "</span>"; htmlCode += "<div class='clear'></div>"; $("#divContent").append(htmlCode); } }
source share