2008-10-24 15 views
6

मैं मेरे बटन प्रस्तुत पर एक रोल ओवर देने के लिए इस कोड है, और मैं इसे अधिक सामान्य बनाने के लिए कोशिश कर रहा हूँ:खोजें और बदलें jQuery

$('.rollover').hover(
      function(){ // Change the input image's source when we "roll on" 
       srcPath = $(this).attr("src"); 
          srcPathOver = ??????? 
       /*need to manipulate srcPath to change from 
       img/content/go-button.gif 
       into 
       img/content/go-button-over.gif 
       */ 
       $(this).attr({ src : srcPathOver}); 
      }, 
      function(){ // Change the input image's source back to the default on "roll off" 
       $(this).attr({ src : srcPath}); 
      } 
    ); 

दो वास्तव में बातें,

मैं सीखना चाहता हूँ रोलओवर के लिए एक नई छवि देने के लिए, gif फ़ाइल नाम पर पाठ '-over' टेक्स्ट को जोड़ने के लिए srcPath चर का उपयोग कैसे करें। क्या कोई ऐसा करने का तरीका सुझा सकता है?

इसके अलावा, क्या कोई मुझे बता सकता है कि क्या यह कोड बिल्कुल परिष्कृत किया जा सकता है? मैं jQuery के लिए थोड़ा नया हूं और सोच रहा हूं कि सिंटैक्स में सुधार किया जा सकता है या नहीं।

बहुत धन्यवाद।

उत्तर

13
$('.rollover').hover(
      function(){ // Change the input image's source when we "roll on" 
       var t = $(this); 
       t.attr('src',t.attr('src').replace(/([^.]*)\.(.*)/, "$1-over.$2")); 
      }, 
      function(){ 
       var t= $(this); 
       t.attr('src',t.attr('src').replace('-over','')); 
      } 
    ); 
+0

var t = ... –

+0

संपादित करें: thx ... var – jcampbell1

2

आप अपने स्रोत पथ को संशोधित करने के लिए एक रेगेक्स प्रतिस्थापन का उपयोग करने में सक्षम होना चाहिए। इस तरह:

srcPathOver = srcPath.replace(/([^.]*)\.(.*)/, "$1-over.$2"); 

अधिक जावास्क्रिप्ट पर regexes here

जहाँ तक आप इसे कैसे कर रहे हैं, मुझे यकीन है कि बनाने चाहते हैं के रूप में आपके द्वारा निर्धारित इस

var srcPath; 
$('.rollover').hover(... 
की तरह अपने srcPath चर

आपके ऊपर जो कोड है, वह ऐसा लगता है जैसे srcPath एक वैश्विक चर है, जो आप नहीं चाहते हैं।

6

फ़ाइल नाम में हेरफेर करने के लिए और संलग्न "ओवर" आप बस, कुछ JavaScript स्ट्रिंग परिवर्तन करना है इस तरह:

function appendOver(srcPath){ 
    var index = s.indexOf('.'); 

    var before = s.substr(0, index); 
    var after = s.substr(index); 

    return before + "-over" + after; 
} 

यह (सभी संभव प्रारूप में) मूल फ़ाइल नाम लौटना चाहिए और जोड़ने एक्सटेंशन डॉट से पहले '-over' स्ट्रिंग।

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