@Annalana

Код, изменяющий оформление элементов, срабатывает только один раз. Почему?

Здравствуйте!
Написала код, который, по идее, должен присваивать новые id элементам. Для этих id в CSS написан измененный дизайн.
Цель: скрипт по клику на элементе должен менять его дизайн и дизайн других элементов. При повторном клике менять все на то, что было, удаляя id.
Код запускается, но срабатывает только один раз. При повторении этих операций не происходит ничего.

Сам код. Я уже в него и цикл добавила, но работать иначе он от этого не стал... Один раз по прежнему срабатывает так, как нужно.
<script type="text/javascript" id="1">
    var n=0;
    while(n < 3){
    $(".building1").click(function(){
      $(".invisible-container").attr("id", "delta-invisible-container");
      $(".header-menu").attr("id", "delta-header-menu");
      $(".building2").attr("id", "delta-building2");
      $(this).attr("id", "delta-building1");
      $(".building1 p").attr("id", "delta-building1-p");
      $(".building1").click(function(){
        $(".invisible-container").removeAttr("id");
        $(".header-menu").removeAttr("id");
        $(".building2").removeAttr("id");
        $(this).removeAttr("id");
        $(".building1 p").removeAttr("id");
 });
});
n++;
};
 </script>

Подскажите, что с ним не так:) Заранее спасибо!
  • Вопрос задан
  • 193 просмотра
Решения вопроса 2
SmthTo
@SmthTo Куратор тега HTML
Все перепёлки мира будут оплакивать мою смерть.
Упрощать ваш код с телефона нет желания, но это будет работать.

Ответ написан
like-a-boss
@like-a-boss
признайся, тебя тянет на код мужика

var el1 = $('.lol1'),
		el2 = $('.lol2');

$('.building1').on('click', function(event) {
	$(el1).attr('id') ? $(el1).removeAttr('id') : $(el1).attr('id', 'lol1');
	$(el2).attr('id') ? $(el2).removeAttr('id') : $(el2).attr('id', 'lol2');
	// etc.
});
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Panda Media Нижний Новгород
от 35 000 руб.
RentaTeam Москва
от 110 000 до 180 000 руб.
emex.ru Москва
от 160 000 до 190 000 руб.