2009-04-04 16 views
12

HTML oluşturmayla ilgili bir sorunla karşılaştım.DIV nasıl odaklanılır?

IE7'nin dir = "rtl" belgesinde, JavaScript bir DIV öğesine (oElement.focus() yöntemiyle) odağı ayarlamaya çalıştığında, oluşturma karışıklığa dönüşür. Bağlam çok karmaşıktır, bu yüzden en kolay çözüm DIV'yi odaklanabilir kılmaktır.

DIV'ye odaklanmanın bir yolu yok mu? Bir öğeyi 'un-odaklanma özelliğine' yapabiliyorsa

+0

olası yinelenen [HTML elemanı olmayan odaklanabilir nasıl yapılır?] (Http://stackoverflow.com/questions/9152096/how-to-make-an-html-element-non-focusable – thSoft

cevap

19

<div> Eğer yoksa odak alabilen olmamalı

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

Steve:

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

... ya da (HTML'nize satır içi JavaScript kullanarak): Sen üzerinden yapabilirsiniz tabIndex ekledi. Eğer tabIndex eklediyseniz Eğer unfocussable olarak focussable elemanı (form giriş öğeleri vs.) olmak için

, sen

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

Bunun çok eski olduğunu biliyorum, ancak deneyimlerim Firefox'un bir sekme bir sekme bulunmasa bile bir odak almasına izin vereceğini gösterdi. (Sadece diğer kullanıcılar için bir FYI olarak eklenmiştir.) – Vaccano

+0

"contenteditable =" true "' olan div'ların da odaklanabileceğini unutmayın. – 10basetom

6

emin değilim, ama kesinlikle onun blur yöntemini kullanarak zaman içinde belirli bir noktada un-odaklanabilirsiniz:

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

EDIT:

Odaklandığınız her seferinde odak noktasını kaldırarak bir unsuru 'odaklanamaz' yapabilirsiniz.

+0

Bulanıklaştırmak için, odakta zaten var demektir, değil mi? Odaklanmak için odak nasıl devre dışı bırakılır? –

+0

Bir öğenin 'odaklanamaz' olmasının mümkün olup olmadığından emin değilim. Sorunuzu dikkatlice okumadığım için üzgünüm! –

18

Ayrıca tarafından kaldırmalısınız. Sen ayarlayabilirsiniz:

Aşağıda
tabIndex = "-1" 

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

jquery kullanarak div unfocusable yapmak için bazı yoludur.

// 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(); 
ait