Событие связывается с div
элементами, поэтому оно не будет запущено, если вы нажмете на любой другой элемент. Но я могу предпочесть использовать функцию делегата.
var $ptest = $('#ptest');
$($ptest).delegate("div", 'click', function() {
$('div', $ptest).removeClass('selected');
$('div', $ptest).html('');
$(this).addClass('selected');
$(this).html('div #' + this.id);
});
Это ограничивает события щелчка элементами div, созданными внутри элемента #ptest
. и $('div', $ptest).html('');
гарантирует, что операция извлечения не затрагивает div вне #ptest
.
Вы можете увидеть рабочий образец в этой скрипке .