Если вы стираете содержимое вашего ul
, вы не должны привязывать слушателей событий к содержимому;вместо этого привязайте прослушиватель щелчков к самому ul
, и вы можете прослушивать события щелчков на ul
и его дочерних элементах, все в одном прослушивателе.Это называется делегированием событий.
$ul.click(function (e) {
var $target = $(e.target);
console.log($target);
});
Если вы хотите специально прослушивать события щелчка на ul
и привязанных к нему элементах, вы можете использовать $.live()
:
$ul.add($ul.find('a')).live('click', function (e) {
console.log(e.target);
});
Должен дать вам события щелчка, которые вы хотите.Я не уверен на 100%, так как .add
может немного изменить ситуацию, но это основная идея.Тестирую это сейчас.