2012-05-22 18 views
8

पर तत्व के टेक्स्ट को प्रतिस्थापित करें, मैं होवर पर इन लिंक के अंदर, अवधि सहित पाठ को प्रतिस्थापित करने का प्रयास कर रहा हूं। फिर जब उपयोगकर्ता होवर बंद हो जाता है, तो मूल पाठ फिर से प्रदर्शित होता है।jQuery jQuery के साथ होवर

<a class="btn" href="#"> 
    <img src="#" alt=""/> 
    <span>Replace me</span> please 
</a> 

<a class="btn" href="#"> 
    <img src="#" alt=""/> 
    <span>Replace me</span> please 
</a> 

अंतिम आउटपुट

<a class="btn" href="#"> 
    <img src="#" alt=""/> 
    I'm replaced! 
</a> 

होना चाहिए मैं चारों ओर के साथ कर रही हूँ लेकिन यकीन है कि कैसे इसे वापस बदलने के लिए नहीं। कोई विचार?

$('.btn').hover(function(){ 
    $(this).text("I'm replaced!"); 
}); 
+0

के लिए यह बहुत आसान हो सकता है अगर * सभी * सामग्री को बदला जाएगा कुछ तत्व के अंदर था। – Jon

+0

क्या आपको इसे jQuery के साथ करने की आवश्यकता है या क्या यह स्थिर टेक्स्ट है? – Paul

+0

http://api.jquery.com/mouseover/#example-0 आपको –

उत्तर

21
$('.btn').hover(
    function() { 
     var $this = $(this); // caching $(this) 
     $this.data('initialText', $this.text()); 
     $this.text("I'm replaced!"); 
    }, 
    function() { 
     var $this = $(this); // caching $(this) 
     $this.text($this.data('initialText')); 
    } 
); 

आप एक data-initialText विशेषता नोड में संग्रहीत में मूल पाठ को बचा सकता है अपने आप में इतना चर

+1

दिखाएगा जो आपने मुझे 43 सेकंड पहले पोस्ट किया था, लेकिन मजाकिया बात यह है कि, जब मैं भेजता हूं और मेरे पास था तो मेरा इंटरनेट एक अलग दूसरे के लिए नीचे चला गया कैप्चा इनपुट करने के लिए जब मैंने इसे –

+0

+1 डेटा-प्रारंभिक टेक्स्ट –

+0

के लिए भेजा है व्यक्तिगत रूप से, यह इसे प्रतिस्थापित करता है, लेकिन तब जब माउस बाहर जाता है, तब भी यह नया टेक्स्ट रखता है! – Dikeneko

4

इस चाल करना चाहिए से बचने के लिए

$(function(){ 
    var prev;  

    $('.btn').hover(function(){ 
    prev = $(this).text(); 
     $(this).text("I'm replaced!"); 
    }, function(){ 
     $(this).text(prev) 
    }); 
}) 
1
$('.btn').hover(function() { 
    // store $(this).text() in a variable  
    $(this).text("I'm replaced!"); 
}, 
function() { 
    // assign it back here 
}); 
0

आप ' इसे एक वैरिएबल में स्टोर करने की आवश्यकता है ताकि इसे वापस सेट किया जा सके, कोशिश करें:

var text; 

$(".btn").hover(function() { 
    text = $(this).text(); 
    $(this).text("I'm replaced!"); 
}, 
function() { 
    $(this).text(text); 
}); 
1

इस तरह मंडराना घटना के लिए एक और समारोह जोड़ें:

$('.btn').hover(function(){ 
    $(this).text("I'm replaced!"); 
}, function() { 
    $(this).text("Replace me please"); 
}); 

Link डेमो

+0

वाह अब मुझे एहसास है कि मैं कितनी धीमी हूं ... और एक jsfiddle लिंक यहां एक बुरा विचार था: '( – optimusprime619

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