2010-10-31 34 views
12

Tôi muốn mỗi lần div mở rộng, để thêm lớp 'selecionado' khi quá trình mở rộng kết thúc. Khi quá trình co được thực hiện (phần slideUp), tôi muốn xóa lớp này.jquery - cách thêm/xóa lớp học trên slideToggle?

Tôi có thể được trợ giúp tại đây không?

$('#btCategoriaA').click(function() 
{ 
    $('#listaCategoriaA').slideToggle('slow', function() { 
    $('#btCategoriaA').addClass('selecionado'); 
    }); 
}); 

Cảm ơn trước, MEM

Trả lời

31

Bạn có thể chuyển đổi các lớp sử dụng .toggleClass() dựa trên nếu các yếu tố .is():visible sau khi hình ảnh động, như thế này:

$('#btCategoriaA').click(function() { 
    $('#listaCategoriaA').slideToggle('slow', function() { 
    $('#btCategoriaA').toggleClass('selecionado', $(this).is(':visible')); 
    }); 
}); 
+1

Bạn thực sự đá trên js don bạn? : P Cảm ơn rất nhiều. : D – MEM

+0

Một điều nữa, tôi làm điều này bằng cách sử dụng các trạng thái css như: hover. Vấn đề là, tôi cần phải vô hiệu hóa di chuột, một khi người dùng nhấp chuột, nếu không, hiệu ứng sẽ khá lạ, bởi vì một khi nó nhấp vào trạng thái nên thay đổi, nhưng kể từ khi nó lơ lửng, nó không. : s Có cách nào để vô hiệu hóa a: hover được áp dụng khi người dùng nhấp chuột hay gì đó? – MEM

+0

@MEM - Bạn có thể có ': hover' là' a.Off: hover' và loại bỏ lớp 'Off' đó khi thêm' selecionado'. –

Các vấn đề liên quan