Nhiều phần tử DOM có thể lấy tiêu điểm: div với tabIndex, các phần tử đầu vào, v.v. Có cách nào đơn giản để kiểm tra xem một phần tử có thể lấy tiêu điểm hơn là kiểm tra một tỷ các trường hợp khác nhau không? Có một phương pháp jQuery cho điều này?Làm thế nào để kiểm tra xem một phần tử dom có thể tập trung được không?
Trả lời
trả lời "dịch" từ đây: Which HTML elements can receive focus?
<a>
hoặc<area>
vớihref
- Bất kỳ yếu tố hình thức mà không bị khuyết tật
- iframe
- Bất kỳ phần tử với
tabindex
Additionaly, tôi beli đêm trước rằng các yếu tố ẩn cũng không thể tập trung.
Giả sử rằng các điều kiện, các chức năng sau đây có thể giúp bạn (giả sử nó sẽ luôn nhận được một yếu tố jQuery):
function canFocus($el) {
if ($el.is(":hidden") || $el.is(":disabled")) {
return false;
}
var tabIndex = +$el.attr("tabindex");
tabIndex = isNaN(tabIndex) ? -1 : tabIndex;
return $el.is(":input, a[href], area[href], iframe") || tabIndex > -1;
}
Tôi biết danh sách các mục có thể nhận được tiêu điểm. Tuy nhiên, tôi muốn một số giải pháp sẵn sàng và thử nghiệm bao gồm tất cả các trường hợp mà tôi có thể không biết. –
Kiểm tra xem câu trả lời được cập nhật có giúp bạn không. – gustavohenke
jQuery đã tích hợp sẵn này, chỉ cần sử dụng '$ el.is (': focusable')' http://api.jqueryui.com/focusable-selector/ – lazd
Liệu sự giúp đỡ này? http://stackoverflow.com/a/2684561/1725764 –
@ HashemQolami, đó không phải là những gì anh ấy yêu cầu. – gustavohenke
Và tôi đã không nói điều đó !, Tôi chỉ hỏi một câu hỏi. –