Разве вы не можете просто поставить маркер на элемент списка и дать им одно и то же событие? Или, что еще лучше, используйте событие live()
, а затем вам даже не нужно добавлять событие:
$('#myUL').append('<li id='a'>a</li>');
с:
$(function() {
$("#myUL li").live("click", function() {
if (this.id == "a") {
...
}
});
});
В противном случае просто измените порядок, и синтаксис будет намного лучше:
$"<li></li>").attr("id", "a").text("a").appendTo("#myUL").click(function() {
...
});
Вы можете просто сделать это:
$"<li id='" + a + "'>" + a + "</li>")..appendTo("#myUL").click(function() {
...
});
но я не рекомендую это при работе с динамическим вводом, поскольку вы не можете корректно экранировать специальные символы, тогда как вызовы attr()
и text()
корректно экранируют контент и делают вас менее восприимчивыми к эксплойтам XSS.