2009-04-04 27 views
12

Tôi gặp sự cố về hiển thị HTML.làm thế nào để làm cho một DIV không tập trung?

Trong tài liệu dir = "rtl" của IE7, khi JavaScript cố gắng đặt tiêu điểm thành phần tử DIV (với phương thức oElement.focus()), hiển thị chuyển thành mớ hỗn độn. Ngữ cảnh rất phức tạp, vì vậy tôi cho rằng cách khắc phục dễ nhất là làm cho DIV không tập trung được?

Có cách nào để làm cho DIV không được tập trung không?

+0

thể trùng lặp của [Làm thế nào để thực hiện một phần tử HTML không thể đặt tiêu điểm?] (Http://stackoverflow.com/questions/9152096/how-to-make-an-html-element-non-focusable) – thSoft

Trả lời

19

Các <div> không nên khả năng tiếp nhận tập trung trừ khi bạn có đã thêm tabIndex.

Nếu bạn đã thêm tabIndex, bạn nên loại bỏ nó bằng cách

document.getElementById("yourElement").removeAttribute("tabIndex"); 
+1

Tôi biết điều này là siêu cũ, nhưng kinh nghiệm của tôi đã chỉ ra rằng Firefox sẽ cho phép một div để có được tập trung ngay cả khi nó không có một tabIndex. (Chỉ cần thêm như là một FYI cho googlers khác.) – Vaccano

+0

Lưu ý rằng divs với 'contenteditable =" true "' cũng có thể nhận được tiêu điểm. – 10basetom

6

Tôi không chắc chắn nếu bạn có thể làm cho một yếu tố 'un-thể đặt tiêu điểm, nhưng bạn có thể chắc chắn un-tập trung nó tại một điểm cụ thể trong thời gian sử dụng phương pháp blur của nó:

document.getElementById("myElement").blur(); 

EDIT:

Tôi nghĩ bạn có thể làm cho phần tử 'không thể lấy nét' bằng cách làm mất nét phần tử mỗi khi nó được lấy nét. Bạn có thể thực hiện điều này thông qua:

document.getElementById("myElement").onfocus = function() { 
    this.blur(); 
}; 

... hoặc (sử dụng inline Javascript trong HTML của bạn):

<div onfocus="this.blur();"></div> 

Steve

+0

Để làm mờ nó, nó có nghĩa là tiêu điểm đã có trên nó, phải không? Làm cách nào để tắt tiêu điểm được đặt trên đó? –

+0

Tôi không chắc chắn liệu có thể làm cho một yếu tố 'không thể tập trung' được hay không. Xin lỗi vì không đọc kỹ câu hỏi của bạn! –

18

Ngoài, Nếu bạn muốn thực hiện một yếu tố focussable (yếu tố hình thức đầu vào vv) như unfocussable. Bạn có thể đặt:

tabIndex = "-1" 

document.getElementById("yourElement").setAttribute("tabIndex", "-1"); 
0

Dưới đây là một số cách để làm cho DIV không tập trung được bằng jquery.

// Set the tabindex atribute to -1. 
     1)$("divid").attr('tabindex','-1'); 
    // Remove the tabindex atribute if exists. 
     2) $("divid").removeAttr('tabindex'); 
    // This is third way. 
     3) $("divid").blur(); 
Các vấn đề liên quan