2009-01-08 36 views
6

Tôi có DIV với một liên kết và một SPAN.jQuery backgroundColor animation

Khi nhấp vào liên kết, nó sẽ hiển thị danh sách các mục bằng cách sử dụng AJAX. Khi một mục được nhấp, nội dung của SPAN được thay đổi.

Tôi muốn làm nổi bật thay đổi này, bằng cách đặt màu nền của DIV thành màu xanh lục và làm động nó trở lại màu trắng bằng cách sử dụng jQuery.

var originalColor = elementToUpdate.parentNode.style.backgroundColor; 
    elementToUpdate.style.backgroundColor = 'green'; //lastSender.style.color; 
    jQuery(elementToUpdate.id).animate({ backgroundColor: '#ffffff' }, 1000); 

Nền của SPAN được đổi thành màu xanh lá cây trên dòng thứ 2, nhưng dòng thứ ba không làm gì cả. Không có lỗi hoặc thay đổi những gì bao giờ ...

Bất kỳ ý tưởng nào?


Edit: Theo ghi nhận của Ted Naleid trong một chú thích bên dưới:

Cũng lưu ý rằng bạn phải có các hình ảnh động màu cài đặt plugin cho này để làm việc (http://plugins.jquery.com/project/color), nếu bạn chưa cài đặt, jQuery không thể tạo hiệu ứng màu sắc, chỉ số thuộc tính (ít nhất là 1.3.1).

Trả lời

9

Bạn không cần .id nếu bạn đã có phần tử. Đưa nó trực tiếp đến jQuery:

jQuery(elementToUpdate).animate({ backgroundColor: '#ffffff' }, 1000); 

Bạn không nhận được lỗi vì elementToUpdate.id là một chuỗi mà jQuery (có thể) diễn giải làm công cụ chọn. Nó chỉ xảy ra là một bộ chọn không chọn bất cứ thứ gì.

Ngoài ra, bạn có thể nói điều này để làm cho nó một chọn hợp lệ:

jQuery('#' + elementToUpdate.id).animate({ backgroundColor: '#ffffff' }, 1000); 

Nhưng tôi nghĩ rằng hình thức đầu tiên là một lợi thế kể từ khi bạn đã có những yếu tố riêng của mình.

+2

Cũng lưu ý rằng bạn phải cài đặt plugin hoạt ảnh màu để làm việc này (http://plugins.jquery.com/project/color), nếu bạn chưa cài đặt, jQuery không thể tạo hiệu ứng màu sắc , chỉ các thuộc tính số (ít nhất là 1.3.1). –

+0

Điểm tốt, OP đã không đề cập đến điều này vì vậy tôi sẽ thêm nó vào câu hỏi của mình. –