@KristinaL

Как оптимизировать код на jquery?

Здравствуйте, прощу прощения за столь легкий вопрос, но я еще новичок в jquery.
Помогите оптимизировать код на jquery.
У меня есть 3 одинаковых кусочка кода для 3 дивов со своими айди. Сделала для того, чтобы код выполнялся только в рамках одного дива, а не перепрыгивал на другие, так как классы одинаковые. Сейчас все работает, как надо.
Но как можно это переписать, чтобы не указывать айди и не повторять куски кода.
Надеюсь, понятно объяснила.

Заранее спасибо

$('.displayblock').hide();
$('.111_cl .panel-heading.slide a').click(function() {
if ($('.111_cl .panel-heading.slide').hasClass('open')) {
$('.111_cl .displayblock').hide();
$('.111_cl .panel-heading a input[type="radio"]').prop('checked', false);
}
else {
$('.111_cl .displayblock').show();
$('.111_cl .panel-heading a input[type="radio"]').prop('checked', true);
}
});

$('.222_cl .panel-heading.slide a').click(function() {
if ($('.222_cl .panel-heading.slide').hasClass('open')) {
$('.222_cl .displayblock').hide();
$('.222_cl .panel-heading a input[type="radio"]').prop('checked', false);
}
else {
$('.222_cl .displayblock').show();
$('.222_cl .panel-heading a input[type="radio"]').prop('checked', true);
}
});

$('.333_cl .panel-heading.slide a').click(function() {
if ($('.333_cl .panel-heading.slide').hasClass('open')) {
$('.333_cl .displayblock').hide();
$('.333_cl .panel-heading a input[type="radio"]').prop('checked', false);
}
else {
$('.333_cl .displayblock').show();
$('.333_cl .panel-heading a input[type="radio"]').prop('checked', true);
}
});
  • Вопрос задан
  • 112 просмотров
Пригласить эксперта
Ответы на вопрос 2
EreminD
@EreminD
Кое-что умею
У меня есть 3 одинаковых кусочка кода для 3 дивов со своими айди.
- в коде нигде не упоминается айди
Используйте ключевое слово this
$('.panel-heading.slide a').click(function() {
  if ($(this).hasClass('open')) {
   /*...*/ 
 } else {
  /*...*/
   }
});

Под this у вас будет подразумеваться кликнутый элемент. Соответственно, работу можно определить, по отношению к кликнотому элементу (дочерний, родительский, соседний)
Ответ написан
Комментировать
@KristinaL Автор вопроса
Ой простите, хотела написать айди, но написала класс :)
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы