2014-04-19 5 views
0

Я хочу выбрать элемент B на основе элемента A, т.е. когда класс A становится .activeLesson. B должен быть выбран. Как мне это сделать?Выбор элемента на основе других

<ul class=""> 
    <li>L4</li> 
    <li>L5</li> 
    <li class="lastChild">L5</li> 
</ul> 

<article class="active"></article> 

В то время как в прошлом Ли получает класс «LastChild» (с помощью JQuery) Я хочу изменить класс статью из «активных» в неактивное

ли, что имеет смысл сейчас?

+0

Я использовал это $ («lessonNavigation Ли: последний. Child.activeLesson»). Но не знаю, как выбрать другой элемент на основе этого –

+0

Единственный способ, которым я знаю получить уведомление javascript при изменении значения класса, - это использовать [MutationObserver] (https: //developer.mozilla .org/en-US/docs/Web/API/MutationObserver), который еще не особенно перекрестный браузер (требуется IE11 или больше для работы в IE). Кроме этого, вам, вероятно, придется опросить таймер. Обработчики событий jQuery не просто внезапно срабатывают при добавлении класса. Это не то, как работают обработчики событий или объекты jQuery. Если бы я был вами, я бы переосмыслил подход и имел код, который изменяет класс, инициирует само уведомление. – jfriend00

+0

Я вижу, что вы относительно новичок в StackOverflow, поэтому вы, вероятно, должны понимать, что вопросы без HTML и никакого кода и хорошее описание фактической цели, где все имеют отношение к вопросу, редко привлекают очень полезные ответы, потому что просто нет " достаточно контекста, чтобы предложить хорошую демонстрацию решений. – jfriend00

ответ

0

Можете ли вы просто сделать это сразу после другого кода?

// adds the class 'lastChild' to the last li 
$('li').last().addClass('lastChild') 
// switches article from .active to .inactive 
$('article').removeClass('active').addClass('inactive') 
+0

Спасибо jshanley Но я хочу «Как последний ребенок из li получает некоторый класс (« lastchild »), используя статью jQuery, должен получить некоторый класс« неактивный ». По мере удаления класса «lastchild» «неактивный» также должен быть удален. –

+0

@ user2854447, проверить мой ответ –

0

У вас может быть работа setInterval.

setInterval(function() { 
    if ($('li').is('.lastChild')) { 
     $('article').addClass('inactive').removeClass('active'); 
    } else { 
     $('article').addClass('active').removeClass('inactive'); 
    } 
}, 1000); 

Здесь функция запускается каждую секунду. Функция, в свою очередь, проверяет класс <li> на класс lastChild, и если он присутствует, он добавляет неактивный и удаляет активный класс.

Это делает наоборот, если <li> не имеет .lastChild класс

+0

Нужно ли использовать setInterval? –

+0

да, так что он часто проверяет изменения –

Смежные вопросы