662
צפיות
צפיות
22
תשובות
תשובות
בעיה עם סקריפט
אהלן
תגידו, למה זה לא עובד?
<script language="JavaScript">
<!–
function myLink() {
window.main.location='index1024X76833333.html'
document.getElementById(aaa).style.visibility='hidden'
}
// –>
</script>
ואיפה שהקישור יש
<span style="cursor:hand" onClick="myLink()">לחץ עליי</span>
ניסיתי לשנות הכל. ניסיתי לשנות בסוגרים ל Id_aaa אבל שום דבר לא עוזר. תודה! 🙂
ותודה לתומר המאסטר על העזרה:)
ולא שירשרתי זאת לדיון הקודם שלי מפני שהוא כבר ישן וההודעה לא יכולה לעלות למעלה.
22 תשובות
ה-aaa צריך לבוא במרכאות.
🙂 תודהה..
הבעיה היתה ששם האיפריים הוא Main ולא main, אבל זה עובד! 🙂
ותודה על התגובה!
שאלה נוספת שקשורה לזה..
אם אני רוצה שכמה DIVים יהפכו ל hidden, מה לכתוב?
נסיתי לכתוב בסוגרים ('23','24','25')
אבל זה כל פעם מעלים רק DIV אחד.
תודה רבה מראש.
אני רואה כאן 2 אופציות
1. לכתוב לכל DIV שורה משלו.
2. לעשות לולאת FOR קטנה שתעלה באחד וככה תיתן ל-DIVים שלך את השמות הנכונים.
תגובה
כן, כתבתי בסופו של דבר שורה לכל DIV..
האממ יש לי איזו בעיה
יש כמה DIVים באמצע העמוד, מעל לפריים שנקרא main. עכשיו, לאחר שלוחצים על קישור הוא מעלים את כל ה DIVים שנמצאים מעל לפריים, אבל אז רואים מקום ריק מעל הפריים. כיצד לעלות את הפריים למעלה לאחר שה DIVים נעלמים?
אולי המקום הריק מופיע
מאחר ואתה משתמש ב-DIV שהוא כמו 2 שורות חדשות (BR).
אני לא רואה שום פלט ככה שאני לא יכול להבין במילים.
יכול להיות
שאתה משתמש ב-"visibility", אם כן, נסה להשתמש ב-"display". ההבדל הוא שהראשון גורם לאובייקט להיות שקוף, והשני גורם להתעלמות מוחלטת בהצגת האובייקט, ככה שהדפדפן לא משאיר את המקום הריק שהוא אמור לתפוס….
כמעט שכחתי,
כדי לפנות למספר אובייקטים ולהעלים את כולם ניתן לפנות בעזרת name במקום id. אז אתה משתמש ב-GetObjectsByName במקום ב-GetObjectByID. שים לב ל-s אחרי object. אם אתה מחפש עפ"י name תקבל חזרה מספר תוצאות (במערך), שניתן לפנות אליהן ביחד או לחוד.
תגובה
אוקיי אז ככה,
כתבתי במקום המשפט הקודם
document.GetObjectsByName('28').style.display='hidden'
וכמובן הגדרתי לדיב name=28
אבל לא לא עושה כלום.. כשלוחצים על הקישור הוא לא מעלים שום דבר..
ודרך אגב
יכול להיות שנשאר מקום ריק מכיוון שהפריים שנמצא מתחתיו נמצא בעצמו בתוך DIV מסויים שמוגדר במיקום אבסולוטי?
נסה לשים את שם ה-DIV
במרכאות וקרא לו בשם מסויים לפני ה-28.
יכול להיות.
בטוח
המיקום האבסולוטי ישאיר את ה-DIV במקום. נסה מיקום רלטיבי או לשנות את המיקום עפ"י הצורך.
לגבי ה-name, כנראה שצריך לפנות אליהם בנפרד (אחד אחד).
טעיתי בשם של הפונקציה.
זה הולך ככה:
getElementsByName(sNameValue)
אם אתה רוצה להעלים כמה divים
אז תעשה לולאה מתאימה
הלולאה (בתוק פונקציה)
<script language="JavaScript">
function hideDives(howMany) {
for (i=0; i<=howMany; i++) {
document.getElementById(i).style.display='none'
}
}
</script>
קריאה לפונקציה
<span style="cursor:hand" onClick="hideDiv(3)">לחץ עליי</span>
הdivים
<div id="1">תוכן</div>
<div id="2">תוכן</div>
<div id="3">תוכן</div>
לא נכון
זה getElementByName
אבל במקרה הזה אפשר לנסות את getElementByTagName כך:
document.getElementByTagName(div).style.display='none'
(לא בטוח עובד)
תיקון קטן
<span style="cursor:hand" onClick="hideDives(3)">לחץ עליי</span>
(הפרמטר בפונקציה הוא מספר הdivים שלך)
כן נכון!
וגם אתה טעית, זה getElementsByTagName. הנה
.טוב
ועוד משהו
getElementsByTagName מחזיר מערך. לכן צריך להתייחס אליו כאל מערך והקוד שהראתם לדעתי לא יעבוד
אה
באמת הגיוני שהוא יחזיר מערך, אחרת היה כתוב Element ולא Elements..
getElementById מקבל כפרמטר
מחרוזת ולא מספר.
ורצוי לתת מחרוזת כ-ID ולא מספר מהסיבה הפשוטה שנגיד עובדים כך:
formId.action = ""
(לדוגמא)
אז זה לא יעבוד אם זה יהיה מספר (3.action) וזה יחשוב (לדעתי) ש-ACTION זה שיטה/תכונה של המספר המסוים (קיים אובייקט מספר)
לכן אם רוצים לאנדקס מס' שדות אז רצוי לתת שם בצירוף מספר למשל:
mess_1, mess_2 וכדומה
האמממ אז ככה
ותומר המאסטרו, ניסיתי את מה שכתבת, וכשלוחצים על הקישור זה כותב בסטטוס בר Error on page.
לכן בנתיים חזרתי למה שכתבתי בהתחלה.
function myLink() {
window.main.location='index1024X76833333.html'
document.getElementById(aaa).style.visibility='hidden'
אלא שעכשיו אני מנסה למנוע את השטח הריק שנשאר לאחר שכל ה DIVים הופכים בלתי נראים מעל הפריים. רואים שטח שחור למעלה ורק אז מתחיל הדף שבאיפריים.
ניסיתי גם להחליף ל-
style.display='none'
אבל גם לא עבד. למישהו יש מושג למה? 🙂
בכל מקרה, אני האיפריים שמתחת ל DIVים נמצא גם הוא בתוך DIV במיקום אבסולותי, כיצד אני יכול לעשות ששהDIVים לא ייראו, האיפריים יעלה?
ותודה רבה לכולם על התגובות
אור