2014-12-24 1 views
1

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

jQuery(function ($) { 
    $('li.menu-item-type-custom').click(function() { 
     $(this).siblings().find('ul.sub-menu').hide(); 
     $(this).children('ul.sub-menu').each(function(index) { 
      $(this).delay(300*(index)).fadeTo(1000,1); 
     }); 
    }); 
}); 

EDIT: Он не приходит в последовательно. Вот DOM Я работаю с: http://jsfiddle.net/m0vxjqsj/2/

+0

какие проблемы вы столкнулись с запуском этого кода? это не исчезает? или не выцветать последовательно. он должен работать, поскольку вы дали задержку() –

+0

Этот [** очень близкий вопрос **] (http://stackoverflow.com/questions/24931689/collection-of-promises-issue) должен дать вам эту идею. В короткоцепочечных обещаниях. –

+0

Ваш код, кажется, работает нормально .... http://jsfiddle.net/m0vxjqsj/ ... возможно, вам следует показать дом, с которым вы работаете? или объясните, что вы хотите, по сравнению с тем, что происходит ... – smerny

ответ

2

Проблема в том, что вы пытаетесь стираться в подменю, когда он появляется вы хотите, чтобы исчезнуть в li-х внутри подменю ... Я добавил .children() перед .hide() и перед .each() ...

Я считаю, что это то, что вы хотите ...

JSFiddle

$('li.menu-item-type-custom').click(function() { 

    $(this).siblings().find('ul.sub-menu').children().hide(); 

    $(this).children('ul.sub-menu').children().each(function (index) { 
     $(this).delay(300 * (index)).fadeTo(1000, 1); 
    }); 
}); 
+0

Отлично. Большое спасибо :) – user2253546