Просто чтобы дать что-то отличное от других ответов.Одинокий день прав, говоря, что функция привязана к тому, кем они являются в начале.Это не меняется.
В следующем коде используется метод jQuery live , чтобы быть в курсе событий.Live всегда будет обрабатывать то, на что ссылается селектор, поэтому он постоянно обновляется, если вы меняете свой класс.Вы также можете динамически добавлять новые div с классом square
, и у них автоматически будет также обработчик.
$(".square:not(.active)").live('click', function() {
$('.square').removeClass('active');
$(this).addClass('active');
});
$('.square.active').live('click', function() {
$(this).removeClass('active');
});
Пример работы: http://jsfiddle.net/jonathon/mxY3Y/
Примечание: я не говорюэто то, как я это сделаю (зависит именно от вашего требования), но это просто другой взгляд на вещи.