2011-03-15 19 views
5

Khi trang đã sẵn sàng, tôi muốn chạy một chức năng sẽ nhận cài đặt nền css và cũng là cài đặt hình ảnh nền di chuột mà tôi muốn sử dụng theo cách khác.jQuery nhận các giá trị di chuột css

Phương pháp duy nhất tôi đã thấy để thực hiện việc này yêu cầu ai đó thực sự di chuột qua phần tử này trước khi bạn có thể nhận được giá trị.

Bất kỳ ai cũng có cách?

Đây là cách để có được một css giá trị không di chuột:

$(this).css('background-color'); 
+0

bạn đã thử $ ("#" + this.id + ": Di chuột"). Css ("nền -màu"); ? – AbiusX

Trả lời

4

Để thực hiện điều này, bạn sẽ cần phải đọc giá trị từ kiểu trực tiếp. Ý tưởng cơ bản là lặp qua từng biểu định kiểu trong document.styleSheets và trong số này, lặp qua từng quy tắc trong .cssRules hoặc .rules, tìm kiếm .selectorText khớp với những gì bạn đang theo dõi.

Để đơn giản hóa mọi thứ, tôi đã viết một thư viện (nhỏ) cho mục đích này - JSS. Nếu bạn có một bộ chọn, ví dụ #someId:hover, sau đó sử dụng JSS, bạn có thể nhận được tài sản background-color với:

jss('#someId:hover').get()['background-color'] 
+0

jss không thực hiện được thử nghiệm nào đó, than ôi: jss ("# espacio_publico"). Get() -> LoạiError: Không thể đọc thuộc tính 'length' của null –