שלח תשובה

זירת השאלות

514
צפיות
16
תשובות

שאלה

,‏ 21 במאי, 2005

האם ע"י JS אפשר להוציא את הכתובת אחרי מספר סלשים.
דוגמא:


img/s/s.gif

וע"י JS אני רוצה להוסיף ל s.gif להפוך אותו ל:


img/s/s_s.gif

כאילו שזה ידל על השני סלשים הראשונים:


img/s/

ויוסיף את ה s_ למלל שאחרי הסלש השני:


s.gif

אני עשיי ככה כדי להוסיף את ה _s:


function ChangPic(pic){
var PiColor=pic.src
    pic.src="s"+PiColor+""
}


אבל הבעיה היא שזה עושה ככה:


simg/s/s.gif

ואני רוצה שזה יעשה:


img/s/ss.gif

הבנתם?
זה נירא לי הכיברור שאני יכול להסביר את זה…

האם אפשר לעשות כזה דבר?

תגיות:

16 תשובות

  1. BuildHome הגיב:

    נסה משהו כזה
    function ChangPic(pic){
        var picPic = pic.substr(pic.lastIndexOf('/')+1,pic.length);
        document.getElementById('pic').src = pic.replace(picPic,"s"+picPic);
    }

  2. somebody הגיב:

    זה לא פועל…
    זה מראה בשורת הסטטוס error…

  3. BuildHome הגיב:

    התאמת את הקוד?
    אתה שולח לפונקציה את הערך של התמונה (src)?
    הקוד עצמו עובד….רק תלוי איך ניסית לעבוד איתו והאם התאמת אותו לקוד שלך.

  4. somebody הגיב:

    תיראה אך שלחתי לפונקציה:


    <img src="../pic/buttonsend/cpink.gif" width="20" onclick="javascript:ChangPic(this)" height="20" border="1">

    והדבקתי את הקוד שהבאתה לי בעמוד..
    מה זאת אומרת להתאים?
    לא שיניתי כלום ממה שעשית…
    כי זה ניראה לי שזה מה שאני צריך…

  5. BuildHome הגיב:

    ניסית לבדוק
    מה הערך שהפונקציה מקבלת? האם מקבלת את הערך הנכון
    או אובייקט?

    נסה לשלוח this.src לפונקציה.
    בנוסף, לתמונה שמשתנה הגדרת ID בשם "pic"?

  6. somebody הגיב:

    הבעיה היא שיש לי 8 תמונות לשנות..
    ולא ניתן לתת ל8 תמונות אותו ID

  7. BuildHome הגיב:

    אז תתחכם
    תשלח לפונקציה גם את ה-ID של התמונה שצריך לשנות.
    function ChangPic(pic,pid){
        var picPic = pic.substr(pic.lastIndexOf('/')+1,pic.length);
        document.getElementById('pic_'+pid).src = pic.replace(picPic,"s"+picPic);
    }

    <img src="img/s/s.gif" alt="" border="0" id ="pic_4">

  8. somebody הגיב:

    תודה רבה זה פועל!
    עכשיו יש לי עוד שאלה..
    אחרי לחיצה ראשונה אחרי שהתמונה מתחלפת אני רוצה שאם המשתמש הלחץ שוב אז התמונה תחזור להיות כמו בהתחלה..
    אז הספתי לקוד שעשית לי (תודה רבה!!) את החלק הבא:
    (זה כולל הקוד שלך…)


    function ChangPic(pic,pid){
      if wasClick_+pid+ = 'true' {
           document.getElementById('pic_'+pid).src = Psrc_+pid;
      }
      else
      {
          var Psrc_+pid+ = pic
          var picPic = pic.substr(pic.lastIndexOf('/')+1,pic.length);
          var  wasClick_+pid+ = 'true'
        document.getElementById('pic_'+pid).src = pic.replace(picPic,"s"+picPic);
      }
    }

    אבל הוא לא פועל….
    מה אפשר לעשות שזה יחזור?
    מה הבעיה בקוד |(אפילו שנירא לי שכל הקוד בעיה )

  9. BuildHome הגיב:

    אם אתה רוצה לעבוד ככה
    אז נסה להשתמש במערך או פשוט תיצור משתנה שיכיל את כל התמונות המוגדלות ובעזרת indexOf תמצא את ID התמונה שהוגדלה וכך תפעל.

    בנוסף, אתה יכול לבדוק אם שם התמונה מכיל את האות s ראשונה וכך לראות אם התמונה הוגדלה או לא (תלוי מה שמות התמונות ופורמט שמות התמונות).

  10. somebody הגיב:

    בעיה…
    עשיתי את הקוד הבא:


    function AddSmaily(Smaily){
    if(WherePut="subject"){
         document.Formmessage.subject.value += Smaily;
         document.Formmessage.subject.focus();
          }
         else
         {
         document.Formmessage.message.value += Smaily;
         document.Formmessage.message.focus();
      }
    }

    והוא אמור להוסיף במילי להודעה ע"פ המקום שבו לחצו, כמו פה באתר….
    אז בשדה של ה subject שמתי את הקוד הבא:


    onfocus="WherePut='subject';"

    ושל הmessage שמתי אותו דבר רק שיניתי את הsubject ל message:


    onfocus="WherePut='message';"

    אבל הקוד לא פועל לא משנה מה אני עושה…
    זה רק מראה בסטטוס של העמוד error..
    מה הבעיה בקוד?
    תודה לכל העוזרים!

  11. somebody הגיב:

    ???
    עשיתי עוד כמה בדיקות וזה לא פועל..
    גהוספת עוד ערך לסקריפט וראיתי שבכלל הוא לא מבצע את הפקודה של focuse…
    מה זה יכול להיות?
    למה?
    עשיתי שאם הפרמט של focuse שווה כלום אז קופצת הודעה, ותמיד קופצת הודעה וזה אומר שהוא לא מקבל את המשתנה…
    למה זה יכול להיות?
    הקוד עצמו בהודעה למעלה…

  12. BuildHome הגיב:

    תשלח לפונקציה
    את הערך המתאים (נושא או הודעה).
    אתה לא יכול להגדיר ככה בשדה ולשלוח לפונקציה או שזה ישלח לבד.

    לא הבנתי את הדבר השני שהסברת ולמה עשית OnFocus? אם זו פונקציה של הוספת סמיילי אז תעשה OnClick.

  13. somebody הגיב:

    עשיתי כמו פה באתר..
    שמתי שעושים פוקוס לשדה המתאים אז זה בוחר את השדה שלחצו אליו ומוסיף לא את הסמילי…
    בחחים לא ראית את הקוד מקור של ההודעה פה?
    הינה אם לא ראית אני יביא לך את ה פוקוס כאן:


    <input type="text" id="Title" name="Title" maxlength="35" style="width:462px;" onfocus="sCursorLocationObj='Title';" />

    זה מה שאני ניסית לעשות רק עם סקריפט שכתבתי אני אבל זה לא פועל לי…
    הבנת?

  14. BuildHome הגיב:

    אוקי הבנתי אותך
    לא הגדרת כל מה שצריך. רק צריך לעבוד לפי ההיגיון וזה ילך לבד.
    נסה את זה:
    <script type="text/javascript">
    var WherePut = null;
    function AddSmaily(Smaily) {
         if(!WherePut) return false;
         document.getElementById(WherePut).focus();
         if(WherePut=="subject") {
              document.getElementById('subject').value += Smaily;
              document.getElementById('subject').focus();
              }
         else  {
              document.getElementById('message').value += Smaily;
              document.getElementById('message').focus();
         }
    }
    </script>

    <img src="happy.gif" alt="" border="0"  style="cursor:hand;" OnClick="AddSmaily(':)');">

    <input type="text" name="subject" id="subject" size="25" OnFocus="WherePut='subject';">
    <textarea name="message" id="message" cols="60" rows="10" OnFocus="WherePut='message';"></textarea>

  15. somebody הגיב:

    אתה פשוט מלך!!!!
    תודה!!!
    אתה לא יודע כמה זמן ניסיתי להפעיל אתו והוא לא פעל לי!
    ואתה בא ומפעיל!!
    תודההה!!!!   

שלח תשובה