2010-10-25 7 views
8

Sto utilizzando jQuery UI per un'applicazione interna.Come ignorare gli stili dei widget UI jQuery e mantenere le funzionalità


Sto cercando un modo semplice per rimuovere tutte le informazioni di stile fornite dall'interfaccia utente di jQuery su una determinata istanza di widget. Sono aperto a qualsiasi cosa, ma una soluzione javascript riutilizzabile sarebbe perfetta. È assolutamente necessario che nessuna funzionalità venga persa.

la cosa più importante è che tutte le immagini di sfondo vengono rimosse, sto bene mantenendo gli stili di layout.

idealmente qualcosa di simile ...

$tabs = $("#someElement").tabs(); 
$tabs.removeStyles(); 

Ma io sono aperto a tutto ciò che mi permette di modificare gli stili di widget in modo flessibile.

L'obiettivo finale è quello di avere il maggior controllo di stili possibile

risposta

16

Per ignorare il jquery-ui css utilizzare il tag !important.

.ui-dialog { 
    background-color: black !important; 
    } 
+0

+1: IMHO, e anche se non è quello che l'OP voleva (anche se sono lo stesso utente?!?!), Questo è il modo più discreto per sostituire gli stili senza fare i furbi con il JS, che porta a un coniglio labirinto di dolore. Il valore CSS importante è spesso trascurato e incredibilmente utile. – tatlar

0

È possibile creare facilmente una funzione removeStyles di tua scelta.

$.fn.removeStyles = function(){ 
$(this).attr('class',''); 
}; 

Questo rimuoverà tutti gli stili dall'elemento selezionato.

Modifica: Se si desidera rimuovere solo le classi create da jquery ui, sono disponibili opzioni limitate. Puoi confrontare le classi dell'attributo class con un elenco di classi jquery-ui che hai digitato. Non c'è alcun proiettile magico che rimuova automaticamente jquery ui.

+1

Sono preoccupato di perfezionare la funzionalità con la rimozione di tutte le classi di widget ... –

+0

Inoltre, questo rimuoverà le classi che assegno manualmente nel markup che vorrei conservare. –

0

è sufficiente rimuovere il file css e avviare la ricostruzione con il layout desiderato. è un sacco di lavoro, ma questo è il prezzo che ne deriva ...

4

Il modo più semplice per rimuovere stili/classi CSS è quello di utilizzare. removeClass(). Ad esempio, per ignorare tutti gli angoli delle schede e hanno solo angoli superiori, lo uso come questo:

$('#tabs').tabs().removeClass('ui-corner-all').addClass('ui-corner-top'); 

Spero che questo aiuti!

Problemi correlati