2013-01-12 42 views
8

Firefox 18 dường như không nhận dạng được -moz-box-shadow hoặc thuộc tính CSS box-shadow.Hộp đổ bóng CSS trong jQuery .css()

Nếu tôi sử dụng border-color, mọi thứ đều hoạt động tốt.

$($this).hover(
    function() { 
     //$(this).css('border-color', '#ff0'); 
     $(this).css('box-shadow', '10px', '10px', '5px', '#888'); 
     //$(this).css('-moz-box-shadow', '10px', '10px', '5px', '#888'); 
    }, function() { 
     $(this).css('border-color', ''); 
     //$(this).css('border-width', ''); 
    } 
); 

Tôi đang làm gì sai?

+0

'.ss' chỉ nhận ** hai ** đối số, tên thuộc tính và giá trị. –

Trả lời

16

Bạn cần phải thực hiện các đối số vào một chuỗi chữ. Tham số giá trị của hàm css(property name, value) là một đối số.

$(this).css('box-shadow', '10px 10px 5px #888'); 
+0

Cảm ơn, tôi hiểu bây giờ, các trường bắt buộc phải nằm trong dấu ngoặc kép chứ không phải các giá trị riêng lẻ. Cảm ơn, tôi chấp nhận câu trả lời của bạn. Chỉ cần phải đợi cho đến khi Stackoverflow cho phép tôi chấp nhận nó :) – Chris

+0

@Chris chính xác, vui mừng đã giúp. –

4

Nhu cầu là:

$(this).hover(function() { 
    $(this).css('box-shadow', '10px 10px 5px #888'); 
}, function() { 
    $(this).css('border-color', ''); 
}); 
5

này:

$(this).css('box-shadow', '10px', '10px', '5px', '#888'); 

là một cú pháp không chính xác. Bạn cần có một giá trị cho thuộc tính CSS:

$(this).css('box-shadow', '10px 10px 5px #888'); 
4

Nó nên là:

$(this).css('-webkit-box-shadow', '10px 10px 5px #888'); 
$(this).css('-moz-box-shadow', '10px 10px 5px #888'); 
$(this).css('box-shadow', '10px 10px 5px #888'); 
+1

Điều này là tốt để nhắm mục tiêu nhiều trình duyệt hơn – TooSerious

1

Đối với Safari, Google Chrome và Opera sử dụng

$(this).css('-webkit-box-shadow', '10px 10px 5px #888'); 

Đối với Mozilla Firefox sử dụng

$(this).css('-moz-box-shadow', '10px 10px 5px #888'); 

Đối với các trình duyệt web khác u se

$(this).css('box-shadow', '10px 10px 5px #888'); 
Các vấn đề liên quan