2013-02-27 25 views
5

Tôi nhận thấy rằng trong firefox, khi bạn nhấp vào mũi tên để mở thẻ 'chọn' của menu thả xuống, sau đó chỉ một tùy chọn, hàng được đánh dấu trong nền màu xanh như tôi mong đợi, đó là OK.Hành vi của Firefox/Internet explorer bằng cách chọn/đánh dấu một mục trong thẻ chọn

Nhưng trong Internet Explorer, khi bạn bấm vào tùy chọn bạn muốn chọn và nó sẽ trở thành tùy chọn đã chọn, đánh dấu màu xanh vẫn còn cho đến khi bạn nhấp vào một nơi khác bên ngoài thẻ chọn.

Có cách nào để thay đổi hành vi đó không?

+0

http://harvesthq.github.com/chosen/ tôi đoán plugin này có thể làm những gì ur yêu cầu trong IE nhưng tôi đoán – wilsonrufus

Trả lời

5

Một cách là sử dụng JavaScript. Tôi đã sử dụng jQuery để làm cho nó dễ dàng hơn: JSFiddle example.

$('select').change(function() { 
    $(this).blur(); 
}) 

Điều này sẽ xóa tiêu điểm khỏi phần tử khi chọn một tùy chọn.

Để làm JavaScript thuần túy này, bạn sẽ sử dụng onchange.

+0

nhưng nếu nó không thay đổi thì ?? $ (this) .blur(); sẽ không xảy ra – wilsonrufus

+0

JAmes Donelly bạn đã cứu mạng của tôi :) Tahnk bạn! Nó hoạt động hoàn hảo – user1966221

+0

Donnely Tôi xin lỗi rằng tôi đang làm phiền bạn nhưng nếu tùy chọn được chọn giống như trước đó (ví dụ tôi chọn Xin chào hai lần liên tiếp) tiêu điểm ở trên chọn và đánh dấu màu xanh là trên một lần nữa . Có cách nào để thay đổi rằng – user1966221

4

Tôi đã gặp sự cố này và sử dụng giải pháp của James Donnelly nhưng cũng muốn ngăn nổi bật nếu tùy chọn hiện tại được chọn (thử James 'jsfiddle trong IE hoặc xem nhận xét của wilsonrufus).

Đưa một handler nhấp chuột vào các tùy chọn dường như để có được xung quanh rằng:

var select = $('select'); 

select.change(function() { 
    select.blur(); 
}) 

$('select option').click(function() { 
    select.blur(); 
}) 
0

này sẽ chăm sóc chọn một tùy chọn mới cũng như cách chọn tùy chọn tương tự:

$('select > option').click(function() { 
    $(this).parent().blur(); 
}) 
Các vấn đề liên quan