2015-12-23 8 views
6

Il seguente codice per raddoppiare gli oggetti larghezza e altezza funziona correttamente. Non riesco proprio a capire perché siano necessarie parentesi graffe.Perché sono necessarie parentesi graffe quando si utilizza jQuery per regolare larghezza e altezza?

var target = $('#target'); 
target.css({ 
    width: target.width() * 2, 
    height: target.height() * 2 
}); 
+0

Le parentesi graffe sono sintassi JS per la definizione di un oggetto, che stai fornendo al metodo 'css()'. L'oggetto può essere utilizzato per contenere più proprietà che devono essere aggiornate in un'unica chiamata. –

+1

Poiché javascript non ha il supporto della sintassi diretta per i parametri denominati, utilizza l'idioma di passare un oggetto letterale per ottenere la stessa cosa. –

risposta

-2

Credo che bisogna usare questo

var target=$('#target'); 
target.css("width",target.width()*2); 
target.css("height",target.height()*2); 
+3

No, il codice OP è perfettamente a posto. Sta chiedendo qual è lo scopo delle parentesi graffe. –

+0

Se si desidera utilizzare più attributi con una sola riga di jQuery. È necessario utilizzare {}. –

+4

... che è già. –

2

parentesi graffe {} sono necessari per impostare più CSS proprietà. Qui stai provando a impostare width e height.

Proprio check here per maggiori informazioni su questo e qui è un funzionario jquery api reference.

+2

Un riferimento migliore: http://api.jquery.com/css. –

+0

Aggiunto @RoryMcCrossan .. Grazie mille .. –

6

Le parentesi graffe sono necessarie perché si passa un oggetto letterale come parametro alla funzione jQuery .css. Secondo il documentation è possibile utilizzarlo in questo modo:

css (proprietà)
proprietà
Tipo: PlainObject
Un oggetto di coppie proprietà-valore da impostare.

Quindi width e height non sono due parametri diversi. Sono due proprietà diverse di un singolo oggetto, in cui il nome della proprietà è lo stile da modificare e la proprietà valuta il valore per cambiarlo.

Mozilla ha quanto segue da dire circa letterali oggetto:

Un oggetto letterale è un elenco di zero o più coppie di nomi di proprietà e valori associati di un oggetto, racchiuso tra parentesi graffe ({}).

Se per qualche motivo vuole evitare di utilizzare letterali oggetto, si può fare in questo modo:

target.css("width", target.width()*2); 
target.css("height", target.height()*2); 

O questo:

target.width(target.width()*2); 
target.height(target.height()*2);