2010-02-25 8 views
5

वहाँ किसी भी तरह से कैसे शैलियों क्या मेरी सीएसएस में है करने के लिए वापस रीसेट करने के लिए है है?Prototype.js: रीसेट setStyle

उदाहरण:

#foo {width: 50px; height: 50px; position: absolute; top: 150px; left: 250px;} 


function moveFoo(newpostop, newposleft){ 
    $('foo').setStyle({top: newpostop+'px', left: newposleft+'px'}); 
} 

अब जब मैं इसे पूरा कर लेने, मैं foo वापस ले जाने के जब यह था चाहते हैं। मुझे पता है कि इसे हार्ड कोड किया जा सकता है, लेकिन मुझे 25 अलग-अलग divs के साथ ऐसा करने की ज़रूरत है।

धन्यवाद

उत्तर

5

सेटिंग शैली सभी CSS वर्ग में तत्वों को खत्म नहीं करता है। यह केवल उन लोगों को ओवरराइड करता है जो बदले गए थे। नियंत्रण की वास्तविक शैली सीएसएस शैली का संयोजन है और स्टाइल विशेषता पर कस्टम शैली है। पूरी तरह से सीएसएस शैली पर वापस जाने के लिए, बस शैली विशेषता को हटा दें।

$('#foo').removeAttr('style'); 

संपादित करें:

जाहिर है ऊपर काम नहीं करता। मैं टिप्पणी में सलाह दी किया गया है कि निम्नलिखित है, तथापि, करता है:

$('#foo').writeAttr('style', ''); 
+1

काम नहीं किया, लेकिन $ ('foo') हटा देंगे writeAttribute ('अंदाज',''); काम करता है! धन्यवाद!! –

+1

जबकि प्रश्न में उदाहरण इंगित करता है कि ** प्रोटोटाइप ** का उपयोग किया जाता है, तो उत्तर ** jQuery ** का उपयोग करने लगता है। और '' 'writeAttribute'' '' '' शैली''' को पूरी तरह से हटा देता है- DOM-Node से विशेषता जबकि अन्य उत्तरों केवल इससे कुछ सेटिंग्स को हटाते हैं। – heiglandreas

0

आप एक विशेषता को हटा सकते हैं, लेकिन मुझे नहीं लगता आप उसे पूर्ववत् कर सकते हैं।

यदि आप एक अतिरिक्त स्टाइलशीट इस्तेमाल कर रहे थे लेआउट बदलने के लिए आप इसे वापस ला सकते हैं। इस तरह आप परिवर्तन को दिखाने के लिए स्टाइलशीट सक्षम करने के लिए सक्षम होना चाहिए, और यह अक्षम और इसे पूर्ववत।

var tempStyle = new Array(); 

    function moveFoo(newpostop, newposleft){ 
     tempStyle ["foo"] = new Array(); 
     tempStyle ["foo"]["top"] = newpostop; 
     tempStyle ["foo"]["left"] = newposleft; 

     $('foo').setStyle({top: newpostop+'px', left: newposleft+'px'}); 
    } 

    function restoreFoo(){ 
     $('foo').setStyle({top: tempStyle ["foo"]["top"]+'px', left: tempStyle ["foo"]["left"]+'px'}); 
    } 
6

एक null के साथ एक शैली की स्थापना:

सबसे अच्छा समाधान शायद एक सरणी के लिए पुराने विशेषताओं की दुकान, और कहा कि सरणी का उपयोग करने के अपनी शैली वापस विशेषताओं

कुछ इस तरह बदलने के लिए किया जाएगा - prototype.js

में अनसेटिंग के साथ चाल है तो आप अपने द्वारा किए गए परिवर्तनों को वापस करने के लिए $('foo').setStyle({top:null,left:null}) का भी उपयोग कर सकते हैं।

1

आप उस के लिए सादे जावास्क्रिप्ट आदेश का उपयोग कर सकते हैं मेरे लिए ठीक काम करता है:।

$('foo').removeAttribute('style'); 

पूरे शैली = "" तत्व

संबंधित मुद्दे