2013-01-23 13 views
19

नमस्ते मैं कुछ ऐसा बनाने की कोशिश कर रहा हूं जो प्रत्येक क्लिक पर वैकल्पिक सिकुड़ने और बढ़ने लगे, लेकिन मैं अपनी वेबसाइट के लिए jQuery 1.9 का उपयोग कर रहा हूं। .toggle(function,function) फ़ंक्शन jQuery 1.9 से हटा दिया गया था, इसलिए मुझे सच में यकीन नहीं है कि मुझे इसके बजाय क्या उपयोग करना चाहिए।jQuery 1.9 हटाए जाने के बाद उपयोग करने का विकल्प क्या है। टॉगल (फ़ंक्शन, फ़ंक्शन)?

कोई भी मदद महान होगी। http://jsfiddle.net/TNAC6/

नई jsfiddle (jQuery 1.9): http://jsfiddle.net/TNAC6/1/

यहाँ मेरी कोड मैं टॉगल बनाने के लिए कोशिश कर रहा हूँ है

धन्यवाद

jsfiddle (पुराने कोड, jQuery 1.8 संस्करण का उपयोग करता)। असल में जो चीज मैं टॉगलिंग कर रहा हूं वह एक सर्कल div है।

(function($){ 
    $.fn.createToggle = function(size) { 
     var ele = $(this); 
     var oldSize = ele.width(); 
     console.log("creating new toggle on element: " + ele + " old: " + oldSize + " new: " + size); 
     console.log("its content is" + ele.children(".content")); 
     var growfn = function() { 
      $(this).stop().animate({ 
       'width': size+'px', 
       'height': size+'px', 
       'margin-left': '-'+(size/2)+'px', 
       'margin-top': '-'+(size/2)+'px' 
      }, 500); 
      $(this).children(".content").toggle(); 
     }; 
     var shrinkfn = function() { 
      $(this).stop().animate({ 
       'width': oldSize+'px', 
       'height': oldSize+'px', 
       'margin-left': '-'+(oldSize/2)+'px', 
       'margin-top': '-'+(oldSize/2)+'px' 
      }, 500); 
      $(this).children(".content").toggle(); 
     }; 
     ele.click(function() { 
//insert code to toggle stuff 
     }); 
    }; 
})(jQuery); 

$(".home").createToggle(500); 

और सीएसएस:

.circleBase { 
    -webkit-border-radius: 999px; 
    -moz-border-radius: 999px; 
    border-radius: 999px; 
    behavior: url(PIE.htc); 
} 

.home { 
    width: 200px; 
    height: 200px; 
    background: #FF5032; 
    position: absolute; 
    top: 300px; 
    left: 300px; 
    margin-left: -100px; 
    margin-top: -100px; 
} 

.title { 
    position: relative; 
    padding-top: 10%; 
    text-align: center; 
    font-weight: bold; 
    font-size: 24px; 
} 

.content { 
    text-align: center; 
    display: none; 
} 

और html:

<div class="circleBase home"> 
    <p class="title">Glen Takahashi<p> 
    <p class="content">THIS IS CONTENT<BR> THIS IS CONTENT<BR> THIS IS CONTENT<BR> THIS IS CONTENT<BR> THIS IS CONTENT</p> 
</div> 
+5

कुछ प्रतिस्थापन तरीकों यहां पाया जा सकता है: https: //forum.jquery .com/topic/beginner-function-toggle-deprecated-what-to-use-इसके बजाए, यदि आप अपना कोड पोस्ट करते हैं, तो हम आपकी सीधी स्थिति के साथ आपकी मदद करने से अधिक कर सकते हैं। आपको पहले से कहीं भी .toggle विधि की आवश्यकता नहीं थी। –

+0

jQuery UI लाइब्रेरी में एक .toggle() विधि भी है http://api.jqueryui.com/toggle/ – samazi

+0

ठीक है मैंने अपना कोड जोड़ा है, अगर यह आपके लिए आसान बनाता है –

उत्तर

6

दो राज्यों के साथ, आप बस एक बूलियन (मैं clickState प्रयुक्त) के रूप में वर्तमान में टॉगल राज्य बनाए रख सकते हैं। यदि आप कई राज्य रखना चाहते हैं, तो आप राज्य गिनती में 1 जोड़ना जारी रख सकते हैं और फिर राज्य के आधार पर कौन सा फ़ंक्शन आग लगाना निर्धारित करने के लिए कुल गणना के मॉड्यूलस को जांच सकते हैं।

मैं अपने कोड अद्यतन ele के बाद से थोड़ा वास्तव में jQuery वस्तु आपके साथ काम करना चाहते हैं:

http://jsfiddle.net/TNAC6/2/

+0

यह वही है जो मुझे चाहिए । धन्यवाद! –

4
$(document).ready(function() { 
    var flag=0; 
    $('selector').on('click', function(){ 
     var menu = $("element_to_toggle"); 
     if(flag==0){ 
      menu.text("click one"); 
      flag=1; 
      return; 
     } 
     else if(flag==1){ 
      menu.text("click two"); 
      flag=0; 
      return; 
     } 
    }); 
}); 
+0

फ्लैग त्रुटि को सही किया ... स्विच बेहतर होगा मुझे लगता है .. –

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