2011-05-10 9 views
100

Ho un div con questa proprietà style="-moz-user-select:none; position:static !important;". Ho bisogno di rimuovere il -moz-user-select Provato con $ (selettore) .css() ma non so quale valore impostare perché è "nessuno".come rimuovere solo una proprietà di stile con jquery

+0

Se è "nessuno", perché è necessario rimuoverlo? Se è necessario cambiarlo in un altro valore [qui] (https://developer.mozilla.org/en/CSS/-moz-user-select) è un elenco di valori validi – Chad

risposta

207

La documentazione per css() dice che l'impostazione della proprietà di stile per la stringa vuota rimuoverà che la proprietà se non risiede in un foglio di stile:

Impostare il valore di una proprietà di stile su una stringa vuota - per esempio $('#mydiv').css('color', '') - rimuove che la proprietà da un elemento se è già stato applicato direttamente, sia in l'attributo di stile HTML, attraverso il metodo .css() di jQuery, o attraverso la manipolazione del DOM diretta della proprietà stile. Tuttavia, non è rimuovere uno stile che è stato applicato con una regola CSS in un foglio di stile o elemento <style>.

Poiché gli stili sono in linea, è possibile scrivere:

$(selector).css("-moz-user-select", ""); 
+3

È bello che non sovrascriva il valore foglio di stile stesso ... –

+0

Questo può essere fatto con javascript e *** senza JQuery? –

+18

@KevinFegan 'document.getElementById ('mydiv'). Style.removeProperty ('- moz-user-select')' – xehpuk

0

È inoltre possibile sostituire "-moz-user-select: none" con "-moz-user-select: ereditare". Ciò erediterà il valore dello stile da qualsiasi stile genitore o dallo stile predefinito se non è stato definito nessuno stile genitore.

+2

l'ereditarietà non viene rimossa –

Problemi correlati