Элементы затухания, когда родительский стиль = X

У меня есть ползунок на моей домашней странице с моей разметкой, так...

<li id="fragment-3">
 <h2>Virtualisation</h2> 
 <p>By implementing virtualisation into Council managed to save them over £250,000 in annual expenditure.</p>
 <div>
 
 
 
 
 
 </div>
 </li>

Я хочу, чтобы каждый дочерний элемент моего элемента анимации исчезал, когда родительский ли имеет встроенный стиль отображения: list-item;

Возможно ли это с помощью jQuery?

Я, хотя об использовании.closest(), но не уверен, как Id нацелить div с встроенным стилем...

2 ответа

Было бы намного проще, если бы вы показали нам, когда и как вы измените отображение на список.

Вы можете посмотреть на функцию jquery $.Deffered и прикрепить ее к методу, который изменяет отображение элемента li. Таким образом, вы можете позже создать функцию, которая слушает скорее, чем дисплей был настроен на элемент списка или нет.

Или вы можете анимировать его в методе, который определяет отображение li, например:

Поскольку это слайдер, я предполагаю, что он изменяется при нажатии стрелки и что элемент списка, который вы нам показали, является одним слайдером среди других.

// when you click next
$('.arrow-next').on('click', function(){

 // hides the current, sets the next to list-item and caches the 'next' li
 var nextLi = $('li.current').css('display','hidden').next('li').css('display','list-item')

 // fades in every element in the div.animation that is within the 'next' li element
 $('div.animation *', nextLi).fadeIn()


})

Надеюсь, это может вам помочь. Если приведенный выше пример не решит вашу проблему, я не совсем уверен, как вы обрабатываете переход от не списка к элементу списка. В любом случае, надеюсь, что это помогло.


Если я правильно понял, что-то вроде этого будет работать:

var hasInlineListItem = $('#whatever').closest('li').is(function () {
 return this.style.display == 'list-item';
});

if (hasInlineListItem) {
 //do whatever you want
}

jsFiddle Demo, чтобы проиллюстрировать, как это работает

В jQuery есть несколько методов фильтрации, которые вы можете использовать. Я использовал is() здесь, который вернет логическое значение.

licensed under cc by-sa 3.0 with attribution.