2014-01-08 70 views
0

我設法做的一切正確,打開每個元素。正如你在下面的例子中看到的所有圖標一起改變,但它只取代被點擊的東西?更改圖標,並非全部

$('.list-prod > li > span').on('click', function() { 
    $(this).next().slideToggle('slow', function() { 
     if($(this).is(':visible')) { 
      $('.list-prod > li > span').addClass('collapse'); 
     } else { 
      $('.list-prod > li > span').removeClass('collapse'); 
     } 
    }); 
}); 

External link demo

回答

1

JSFIDDLE DEMO

$('.list-prod > li > span').on('click', function() { 
    $(this).toggleClass('expand collapse'); 
    $(this).next().slideToggle('slow'); 
}); 
+0

我想他想在動畫之後切換類。 – MMM

+0

@Krishna謝謝。 Ow人,事件後切換類?我需要學習更多... –

+0

@ bda.awk - 沒有得到你的意思..是否爲你工作?還有什麼你想要的嗎? – Krishna

1

這裏你應該寫什麼

$('.list-prod > li > span').on('click', function() { 
    $(this).next().slideToggle('slow', function() { 
     $(this).prev().toggleClass('collapse'); 
    }); 
}); 

因爲this在回調函數中引用了摺疊/可見div