Функция live jQuery работает с использованием « Event Delegation ». Основная идея заключается в том, что вы привязываете слушателя к родительскому элементу, который гарантированно будет существовать при загрузке страницы. Любой элемент ниже этого (, за исключением некоторых ) вызовет событие, которое может быть перехвачено родительским слушателем. Оттуда вам нужно будет извлечь target / sourceElement события и определить, действительно ли это то, что вам нужно.
Примерно так будет работать для прослушивания щелчков. Просто убедитесь, что все новые элементы, которые вы добавляете, находятся в соответствующем родительском контейнере и имеют атрибут, который отличает их от остальных интерактивных элементов.
<html>
<head>
<script type="text/javascript">
window.onload = function(){
// get the relevant container
var eventContainer = document.getElementById("EventContainer");
// bind a click listener to that container
eventContainer.onclick = function(e){
// get the event
e = e || window.event;
// get the target
var target = e.target || e.srcElement;
// should we listen to the click on this element?
if(target.getAttribute("rel") == 'click-listen')
{
alert("You clicked something you are listening to!");
}// if
};
};
</script>
</head>
<body>
<div id="EventContainer">
<input type="button" rel="click-listen" name="myButton" value="Listening to this button." />
<input type="button" name="anotherButton" value="Not listening." />
<p>I'm also listening to this a element: <a href="#" rel="click-listen">listening to this</a></p>
</div>
</body>
</html>