2014-06-12 22 views
9

Ho una variabile in Sass che determina il numero di columns da inserire in 1 row per il mio sistema di rete.Come posso usare le variabili Sass in una funzione JavaScript?

Normalmente, quelli sono 12 columns.

In JavaScript ho una funzione che controlla se ci sono più di 12 column s in un row.

In tal caso, nasconde l'intera riga.

Questa funzione è simile al seguente:

function checkColumns() { 
    var maxColumns = 12; 
    $('.row').each(function() { 
     var elementsLength = $(this).children('.column').length; 
     if (elementsLength > maxColumns) { 
      $(this).remove(); 
     } 
    }); 
} 

C'è un modo per cambiare la variabile maxColumns allo stesso numero che è nelle mie variabili Sass? Inoltre, cambiandolo manualmente ogni volta che cambio il numero nel mio file sass.

+0

Si può, in certi casi - ma è complicato. Leggi questo, per cominciare: http://css-tricks.com/making-sass-talk-to-javascript-with-json/ –

+0

Sembra un [XY Problem] (http://meta.stackexchange.com/ domande/66377/what-is-the-xy-problema). Sarebbe più efficiente impedire in primo luogo più di 12 colonne. – cimmanon

+0

@cimmanon Questo è un luogo comune per i sistemi di griglia tipografica :-) Ma sono d'accordo sul fatto che non ho mai visto Javascript che abbia bisogno di preoccuparsi della struttura della griglia della pagina. – Kos

risposta

7

appena visto questa questa mattina qui: http://viget.com/extend/sharing-data-between-sass-and-javascript-with-json

In primo luogo è necessario includere: https://github.com/vigetlabs/sass-json-vars

Installare la gemma:

gem install sass-json-vars 

Posizionare le variabili in un file JSON

// variables.json 
{ 
    "font-sans": "Helvetica, sans-serif", 
    "colors": { 
     "red": "#c33" 
    } 
} 

Importare il file in Sass per esporre i nomi delle variabili:

@import "variables.json" 

body { 
    color: map-get($colors, red); 
    font: $font-sans; 
} 

Richiede Sass-JSON-Vars durante la compilazione

sass style.scss -r sass-json-vars 
+0

grazie, ma funziona solo nel file principale che stai compilando correttamente? Non in altre importazioni? – Bas

Problemi correlati