another_dream
@another_dream
Backend-разработчик, Laravel/ZF2/Yii2

Почему не работает код?

$('#right').on('click', '.firstcircle, .secondcircle, .thirdcircle, .fourthtcircle', 
    function(){
    var findSelected = $("div.selectedcircle");
    var selectedElementId = $(selectedElement).attr('data-slide');
    $('.firstcircle, .secondcircle, .thirdcircle, .fourthtcircle').removeClass('selectedcircle');
    if ($(selectedElementId)).is("4") {
        $('.firstcircle').addClass('selectedcircle');}
    else if ($(selectedElementId)).is("1") {
        $('.secondcircle').addClass('selectedcircle');}
    else if ($(selectedElementId)).is("2") {
        $('.thirdcircle').addClass('selectedcircle');}
    else {$('.fourthcircle').addClass('selectedcircle');}
    });

Суть: при клике на элемент с #right, скрипт находит div с классом selectedcircle. Узнает значение data-slide у этого элемента. Далее начинается проверка условий. Если data-slide = 4, тогда div с классом firstcircle получает класс selectedcircle. Если data-slide = 1, то div с классом secondcircle получает selectcircle и так до пока не проверит 4 элемента. Код ужасен, понимаю, с JS знаком "полтора дня". И да, он не работает. Все спасибо.
  • Вопрос задан
  • 2583 просмотра
Решения вопроса 3
@artishok
кратко
Проверка на внимательность
var findSelected = $("div.selectedcircle");
    var selectedElementId = $(selectedElement).attr('data-slide');


Проверка на внимательность 2:
else if ($(selectedElementId)).is("1") {

Где вы такому научились?
$(selectedElementId)).is("2")
Правильно:
if(selectedElementId == 2)
Ответ написан
iiil
@iiil
Инженер и вэб-дизайнер, рисую.
jsfiddle.net/iiil/a45Q4
Попробуйте сделать как-нибудь так. Что Вы плодите классы, старайтесь делать все адаптивным, на случай, если понадобится еще один пункт меню. Вот пример с 10 пунктами:
jsfiddle.net/iiil/a45Q4/1
Ответ написан
another_dream
@another_dream Автор вопроса
Backend-разработчик, Laravel/ZF2/Yii2
$('#right').on('click', '.firstcircle, .secondcircle, .thirdcircle, .fourthtcircle', 
    function(){
    var findSelected = $("div.selectedcircle");
    var selectedElementId = $(findSelected).attr('data-slide');
    $('.firstcircle, .secondcircle, .thirdcircle, .fourthtcircle').removeClass('selectedcircle');
    if (selectedElementId == 4) {
        $('.firstcircle').addClass('selectedcircle');}
    else if (selectedElementId == 1) {
        $('.secondcircle').addClass('selectedcircle');}
    else if (selectedElementId == 2) {
        $('.thirdcircle').addClass('selectedcircle');}
    else {$('.fourthcircle').addClass('selectedcircle');}
    });

@artishok , Теперь верно?
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы