2012-03-21 25 views
7

我使用這個代碼比較簡單的jQuery/JavaScript的無效左側:在分配

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

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

它未能在兩條線上/減去那些在加入!有任何想法嗎?

+0

' - ='試圖從'prop.height減去'206'( )'並將結果分配給它。但'prop.height()'返回一個值,而不是一個變量。我假設你只是想省略'='。 – 2012-03-21 11:45:42

回答

7

-=操作等於operand = operand - value而你的情況看起來像

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

這顯然會失敗。您只需要減號操作員即可完成該任務。

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

會做到這一點。

1

你不能 - =一個方法。

要麼你需要prop.height(prop.height() - 206); 或第一,然後收集值= - 它像...

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

prop.height() -= 206 attemtps分配給返回值,這是不是一個變量,因此不可能的; (prop.height() = prop.height() - 206

你可以改爲; prop.height(prop.height() - 206);

或(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

你有你的答案,但我想提一提,爲什麼用的if/else打擾的增加或減少:

// 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));