2012-03-21 12 views
7

estoy usando el código relativamente simple:jQuery/Javascript no válida lado izquierdo en la asignación

var height = help ? 'minus' : 'plus'; 
var prop = $('#properties'); 

if(height == 'minus'){ 
    prop.height(prop.height() -= 206); 
} else { 
    prop.height(prop.height() += 206); 
} 

Se produce un error en ambas líneas que la suma/resta! ¿Algunas ideas?

+0

'- =' intenta restar '' 206' de prop.height () 'y le asigna el resultado. Pero 'prop.height()' devuelve un valor y no es una variable. Supongo que solo quiere omitir el '='. –

Respuesta

7

El operador -= es igual a operand = operand - value que en su caso se vería como

prop.height() = prop.height() - 206; 

que, obviamente, se producirá un error. Solo necesita el operador menos para realizar esa tarea.

prop.height(prop.height() - 206); 

lo hará.

1

no se puede - = un método.

ya sea que necesita para prop.height(prop.height() - 206); o cobrar el valor primero y luego - = como si fuera ...

var h = prop.height(); 
h -= 206 
prop.height(h); 
1

prop.height() -= 206 attemtps asignar al valor de retorno, que no es una variable tan imposible; igual que (prop.height() = prop.height() - 206)

En su lugar, puede; prop.height(prop.height() - 206);

O (prop.height(prop.height() + (height === 'minus' ? -206 : 206));)

1
var height = help ? 'minus' : 'plus'; 
var prop = $('#properties'); 
var propHeight = prop.height(); 

if(height === 'minus'){ 
    prop.height(propHeight - 206); 
} else { 
    prop.height(propHeight + 206); 
} 
1

Que tenga su respuesta, pero quería mencionar por qué molestarse con un if/else para sumar o restar:

// subtract height if help is true, otherwise add height 
var heightmodifier = help ? -1 : 1; 
var prop = $('#properties'); 
var propHeight = prop.height(); 

prop.height(propHeight + (206 * heightmodifier)); 
Cuestiones relacionadas