2012-03-21 14 views
7

मैं इस अपेक्षाकृत सरल कोड का उपयोग कर रहा में बाएं ओर:jQuery/जावास्क्रिप्ट अमान्य काम

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()' एक मान देता है और एक चर नहीं है। मुझे लगता है कि आप बस '=' को छोड़ना चाहते हैं। –

उत्तर

7

-= ऑपरेटर operand = operand - value जो आपके मामले में की तरह

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

जो स्पष्ट रूप से असफल हो जायेगी लगेगा बराबर होती है। उस कार्य को पूरा करने के लिए आपको बस ऋण ऑपरेटर की आवश्यकता है।

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

ऐसा करेगा।

1

आप नहीं कर सकते - = एक विधि। ; वापसी मान है, जो एक चर तो असंभव नहीं है करने के लिए आवंटित करने के लिए = ऐसा ...

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

आप अपने जवाब मिल गया है, लेकिन मैं क्यों जोड़ने या घटाकर के लिए एक अगर/किसी और से परेशान उल्लेखित करना चाहते थे:

// 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)); 
संबंधित मुद्दे