2009-04-04 37 views
12

Ho incontrato un problema sul rendering HTML.come rendere un DIV non focalizzabile?

Nel documento dir = "rtl" di IE7, quando JavaScript tenta di impostare lo stato attivo su un elemento DIV (con il metodo oElement.focus()), il rendering si trasforma in pasticcio. Il contesto è molto complicato, quindi suppongo che la soluzione più semplice sia rendere il DIV non focalizzabile?

C'è un modo per non mettere a fuoco un DIV?

+0

possibile duplicato di [Come fare un elemento HTML non attivabile?] (Http://stackoverflow.com/questions/9152096/how-to-make-an-html-element-non-focusable) – thSoft

risposta

19

Il <div> non dovrebbe essere in grado di ricevere attenzione se non si ha aggiunto tabIndex.

Se sono stati aggiunti tabIndex, si consiglia di rimuoverlo dal

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

So che questo è super vecchio, ma la mia esperienza ha dimostrato che Firefox permetterà a un div di ottenere il focus anche se non ha un tabIndex. (Appena aggiunto come FYI per altri googler.) – Vaccano

+0

Si noti che anche i div con 'contenteditable =" true "' possono ricevere focus. – 10basetom

6

non sono sicuro se si può fare un elemento 'non-attivabile', ma si può certamente non-mettere a fuoco in un punto specifico nel tempo utilizzando il suo metodo blur:

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

EDIT:

Penso che si possa rendere un elemento "non focalizzabile" sfocandolo ogni volta che viene messo a fuoco. È possibile eseguire questa via:

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

... o (tramite linea Javascript nel tuo HTML):

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

Steve

+0

Per offuscarlo, significa che l'attenzione è già su di esso, giusto? Come disabilitare la messa a fuoco su di essa? –

+0

Non sono sicuro se sia possibile rendere un elemento "non focalizzabile". Scusa per non aver letto attentamente la tua domanda! –

18

Inoltre, se si vuole fare un elemento focalizzabile (elementi di input forma etc.) come unfocussable. È possibile impostare:

tabIndex = "-1" 

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

riportano di seguito le qualche modo per rendere DIV unfocusable utilizzando 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(); 
Problemi correlati