2013-03-28 72 views
11

Có vấn đề khi nhận màu đường viền của phần tử được nhấp trong Internet Explorer.Nhận màu đường viền bằng jQuery trong IE với .css()

$("#clickme").click(function() { 
    alert($(this).css('border-color')); 
}); 

Đây là jsfiddle: http://jsfiddle.net/dS7mc/
Nó hoạt động trong chrome nhưng nó không hoạt động trong IE10.

Bất kỳ ý tưởng nào về cách làm cho nó hoạt động với cả hai? Cũng thay đổi thành "border" chỉ, trong chrome nó mang lại cho tôi 2px solid rgb(0, 0, 0) nhưng trong trường hợp tôi vẫn nhận được thông báo trống.

PS. Có, tôi đã thử "borderColor". Cũng không làm việc trong IE

+1

@ dystroy, anh ta nói nó đưa ra một cảnh báo trống –

Trả lời

5

Hãy thử ..Works này trên IE8

$("#clickme").click(function() { 
    $('body').append($(this).css('border-top-color')); 
}); 

enter image description here

jsFiddle

Ngoài ra, Màu sắc được trả về bởi các trình duyệt theo một cách khác FireFox , Safari và Chrome trả lại giá trị rgb()IE trả lại chính xác như bạn đặt chúng trongcủa bạnngay cả khi bạn sử dụng các ký hiệu viết tắt (#f00 vs #ff0000) và Opera luôn trả về màu sắc như hexidecimal với 6 chữ số

2

tương tự như Mohammad Adil:

$("#clickme").click(function() { 
    var Bcolor = $(this).css("border-left-color"); 
    alert(Bcolor); 
}); 

bạn có để spec mỗi bên

1

hãy thử thường xuyên js

var clickme = $("#clickme")[0]; 
    clickme.addEventListener('click', function() { 
    alert(clickme.style.borderColor) 
    }, false) 
+0

Vâng, xin lỗi khi nói điều đó, nhưng tôi nhận được thông báo trống ngay cả trong Chrome. Bạn có thể thử thiết lập jsfiddle. – Kedor

+0

hoạt động với tôi cục bộ trên chrome và firebug nhưng không phải trên fiddle bây giờ là lẻ –

5

Điều này là do trong Internet Explorer không có border-color. Khu nghỉ dưỡng được đổi tên thành thủ tục hải pos màu:

border-top-color: #000000; 
border-right-color: #000000; 
border-bottom-color: #000000; 
border-left-color: #000000; 

cũng áp dụng như border-widthborder-style (border-left-width, vv). Để kéo màu biên giới (giả sử tất cả 4 đều giống nhau), bạn muốn sử dụng:

$(this).css('border-top-color'); 

không kém để kéo border-width hoặc border-style (một lần nữa giả sử tất cả 4 đều bình đẳng), bạn muốn sử dụng:

$(this).css('border-top-width'); 
$(this).css('border-top-style'); 

Bạn có thể tìm thấy sản phẩm nào trên phong cách một yếu tố có với F12 công cụ phát triển IE của:

IE Dev Tools

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