514
צפיות
צפיות
16
תשובות
תשובות
שאלה
האם ע"י 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 תשובות
נסה משהו כזה
function ChangPic(pic){
var picPic = pic.substr(pic.lastIndexOf('/')+1,pic.length);
document.getElementById('pic').src = pic.replace(picPic,"s"+picPic);
}
זה לא פועל…
זה מראה בשורת הסטטוס error…
התאמת את הקוד?
אתה שולח לפונקציה את הערך של התמונה (src)?
הקוד עצמו עובד….רק תלוי איך ניסית לעבוד איתו והאם התאמת אותו לקוד שלך.
תיראה אך שלחתי לפונקציה:
<img src="../pic/buttonsend/cpink.gif" width="20" onclick="javascript:ChangPic(this)" height="20" border="1">
והדבקתי את הקוד שהבאתה לי בעמוד..
מה זאת אומרת להתאים?
לא שיניתי כלום ממה שעשית…
כי זה ניראה לי שזה מה שאני צריך…
ניסית לבדוק
מה הערך שהפונקציה מקבלת? האם מקבלת את הערך הנכון
או אובייקט?
נסה לשלוח this.src לפונקציה.
בנוסף, לתמונה שמשתנה הגדרת ID בשם "pic"?
הבעיה היא שיש לי 8 תמונות לשנות..
ולא ניתן לתת ל8 תמונות אותו ID
אז תתחכם
תשלח לפונקציה גם את ה-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">
תודה רבה זה פועל!
עכשיו יש לי עוד שאלה..
אחרי לחיצה ראשונה אחרי שהתמונה מתחלפת אני רוצה שאם המשתמש הלחץ שוב אז התמונה תחזור להיות כמו בהתחלה..
אז הספתי לקוד שעשית לי (תודה רבה!!) את החלק הבא:
(זה כולל הקוד שלך…)
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);
}
}
אבל הוא לא פועל….
מה אפשר לעשות שזה יחזור?
מה הבעיה בקוד |(אפילו שנירא לי שכל הקוד בעיה )
אם אתה רוצה לעבוד ככה
אז נסה להשתמש במערך או פשוט תיצור משתנה שיכיל את כל התמונות המוגדלות ובעזרת indexOf תמצא את ID התמונה שהוגדלה וכך תפעל.
בנוסף, אתה יכול לבדוק אם שם התמונה מכיל את האות s ראשונה וכך לראות אם התמונה הוגדלה או לא (תלוי מה שמות התמונות ופורמט שמות התמונות).
בעיה…
עשיתי את הקוד הבא:
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..
מה הבעיה בקוד?
תודה לכל העוזרים!
???
עשיתי עוד כמה בדיקות וזה לא פועל..
גהוספת עוד ערך לסקריפט וראיתי שבכלל הוא לא מבצע את הפקודה של focuse…
מה זה יכול להיות?
למה?
עשיתי שאם הפרמט של focuse שווה כלום אז קופצת הודעה, ותמיד קופצת הודעה וזה אומר שהוא לא מקבל את המשתנה…
למה זה יכול להיות?
הקוד עצמו בהודעה למעלה…
תשלח לפונקציה
את הערך המתאים (נושא או הודעה).
אתה לא יכול להגדיר ככה בשדה ולשלוח לפונקציה או שזה ישלח לבד.
לא הבנתי את הדבר השני שהסברת ולמה עשית OnFocus? אם זו פונקציה של הוספת סמיילי אז תעשה OnClick.
עשיתי כמו פה באתר..
שמתי שעושים פוקוס לשדה המתאים אז זה בוחר את השדה שלחצו אליו ומוסיף לא את הסמילי…
בחחים לא ראית את הקוד מקור של ההודעה פה?
הינה אם לא ראית אני יביא לך את ה פוקוס כאן:
<input type="text" id="Title" name="Title" maxlength="35" style="width:462px;" onfocus="sCursorLocationObj='Title';" />
זה מה שאני ניסית לעשות רק עם סקריפט שכתבתי אני אבל זה לא פועל לי…
הבנת?
אוקי הבנתי אותך
לא הגדרת כל מה שצריך. רק צריך לעבוד לפי ההיגיון וזה ילך לבד.
נסה את זה:
<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>
אתה פשוט מלך!!!!
תודה!!!
אתה לא יודע כמה זמן ניסיתי להפעיל אתו והוא לא פעל לי!
ואתה בא ומפעיל!!
תודההה!!!!
בכיף