2009-04-04 24 views
12

He encontrado un problema con la representación de HTML.cómo hacer un DIV desenfocable?

En dir = "rtl" documento de IE7, cuando JavaScript intenta establecer el foco en un elemento DIV (con el método oElement.focus()), la representación se convierte en desastre. El contexto es muy complicado, así que supongo que la solución más fácil es hacer que DIV sea imposible de enfocar.

¿Hay alguna manera de hacer que un DIV no se enfoque?

+0

posible duplicado de [Cómo hacer un elemento HTML no centrada?] (Http://stackoverflow.com/questions/9152096/how-to-make-an-html-element-non-focusable) – thSoft

Respuesta

19

El <div> no debería ser capaz de recibir el foco a menos que tenga añadido tabIndex.

Si ha añadido tabIndex, debe eliminarlo por

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

Sé que esto es muy viejo, pero mi experiencia ha demostrado que Firefox permitirá que un div obtenga el foco incluso si no tiene un tabIndex. (Se acaba de agregar como un FYI para otros googlers). – Vaccano

+0

Tenga en cuenta que los divs con 'contenteditable =" true "' también pueden recibir el foco. – 10basetom

6

no estoy seguro de si se puede hacer un elemento 'no-enfocable', pero que sin duda puede des-enfocarla en un punto específico en el tiempo utilizando su método blur:

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

EDIT:

Creo que puede hacer que un elemento sea 'no enfocable' al desenfocarlo cada vez que se enfoca. Esto se puede hacer a través de:

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

... o (usando Javascript en su línea HTML):

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

Steve

+0

Para desenfocarlo, significa que el foco ya está en él, ¿verdad? ¿Cómo deshabilitar el foco para establecerlo? –

+0

No estoy seguro de si es posible hacer un elemento 'no enfocable'. Perdón por no haber leído tu pregunta cuidadosamente! –

18

Además, si usted quiere hacer un elemento enfocable (los elementos de entrada de formulario, etc.) como unfocussable. Puede configurar:

tabIndex = "-1" 

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

a continuación es el de alguna manera para hacer DIV unfocusable usando 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(); 
Cuestiones relacionadas