שלח תשובה

זירת השאלות

662
צפיות
22
תשובות

בעיה עם סקריפט

,‏ 2 ביולי, 2004

אהלן
תגידו, למה זה לא עובד?


    <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 תשובות

  1. OrTheCool הגיב:

    🙂 תודהה..
    הבעיה היתה ששם האיפריים הוא Main ולא main, אבל זה עובד! 🙂
    ותודה על התגובה!

  2. OrTheCool הגיב:

    שאלה נוספת שקשורה לזה..
    אם אני רוצה שכמה DIVים יהפכו ל hidden, מה לכתוב?
    נסיתי לכתוב בסוגרים ('23','24','25')
    אבל זה כל פעם מעלים רק DIV אחד.

    תודה רבה מראש.

  3. BuildHome הגיב:

    אני רואה כאן 2 אופציות
    1. לכתוב לכל DIV שורה משלו.
    2. לעשות לולאת FOR קטנה שתעלה באחד וככה תיתן ל-DIVים שלך את השמות הנכונים.

  4. OrTheCool הגיב:

    תגובה
    כן, כתבתי בסופו של דבר שורה לכל DIV..

    האממ יש לי איזו בעיה
    יש כמה DIVים באמצע העמוד, מעל לפריים שנקרא main. עכשיו, לאחר שלוחצים על קישור הוא מעלים את כל ה DIVים שנמצאים מעל לפריים, אבל אז רואים מקום ריק מעל הפריים. כיצד לעלות את הפריים למעלה לאחר שה DIVים נעלמים?

  5. BuildHome הגיב:

    אולי המקום הריק מופיע
    מאחר ואתה משתמש ב-DIV שהוא כמו 2 שורות חדשות (BR).
    אני לא רואה שום פלט ככה שאני לא יכול להבין במילים.

  6. sirob הגיב:

    יכול להיות
    שאתה משתמש ב-"visibility", אם כן, נסה להשתמש ב-"display". ההבדל הוא שהראשון גורם לאובייקט להיות שקוף, והשני גורם להתעלמות מוחלטת בהצגת האובייקט, ככה שהדפדפן לא משאיר את המקום הריק שהוא אמור לתפוס….

  7. sirob הגיב:

    כמעט שכחתי,
    כדי לפנות למספר אובייקטים ולהעלים את כולם ניתן לפנות בעזרת name במקום id. אז אתה משתמש ב-GetObjectsByName במקום ב-GetObjectByID. שים לב ל-s אחרי object. אם אתה מחפש עפ"י name תקבל חזרה מספר תוצאות (במערך), שניתן לפנות אליהן ביחד או לחוד.

  8. OrTheCool הגיב:

    תגובה
    אוקיי אז ככה,
    כתבתי במקום המשפט הקודם


    document.GetObjectsByName('28').style.display='hidden'

    וכמובן הגדרתי לדיב name=28
    אבל לא לא עושה כלום.. כשלוחצים על הקישור הוא לא מעלים שום דבר..

  9. OrTheCool הגיב:

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

  10. BuildHome הגיב:

    נסה לשים את שם ה-DIV
    במרכאות וקרא לו בשם מסויים לפני ה-28.

    יכול להיות.

  11. sirob הגיב:

    בטוח
    המיקום האבסולוטי ישאיר את ה-DIV במקום. נסה מיקום רלטיבי או לשנות את המיקום עפ"י הצורך.
    לגבי ה-name, כנראה שצריך לפנות אליהם בנפרד (אחד אחד).

  12. sirob הגיב:

    טעיתי בשם של הפונקציה.
    זה הולך ככה:

    getElementsByName(sNameValue)

  13. אם אתה רוצה להעלים כמה 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>

  14. לא נכון
    זה getElementByName
    אבל במקרה הזה אפשר לנסות את getElementByTagName כך:

    document.getElementByTagName(div).style.display='none'

    (לא בטוח עובד)

  15. תיקון קטן


    <span style="cursor:hand" onClick="hideDives(3)">לחץ עליי</span>

    (הפרמטר בפונקציה הוא מספר הdivים שלך)

  16. sirob הגיב:

    כן נכון!
    קישור

    וגם אתה טעית, זה getElementsByTagName. הנה לינק.

  17. ניר טייב הגיב:

    ועוד משהו
    getElementsByTagName מחזיר מערך. לכן צריך להתייחס אליו כאל מערך והקוד שהראתם לדעתי לא יעבוד

  18. אה
    באמת הגיוני שהוא יחזיר מערך, אחרת היה כתוב Element ולא Elements..

  19. ניר טייב הגיב:

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

    formId.action = ""

    (לדוגמא)
    אז זה לא יעבוד אם זה יהיה מספר (3.action) וזה יחשוב (לדעתי) ש-ACTION זה שיטה/תכונה של המספר המסוים (קיים אובייקט מספר)

    לכן אם רוצים לאנדקס מס' שדות אז רצוי לתת שם בצירוף מספר למשל:
    mess_1, mess_2 וכדומה

  20. OrTheCool הגיב:

    האמממ אז ככה
    ותומר המאסטרו, ניסיתי את מה שכתבת, וכשלוחצים על הקישור זה כותב בסטטוס בר Error on page.

    לכן בנתיים חזרתי למה שכתבתי בהתחלה.


    function myLink() {
    window.main.location='index1024X76833333.html'
    document.getElementById(aaa).style.visibility='hidden'

    אלא שעכשיו אני מנסה למנוע את השטח הריק שנשאר לאחר שכל ה DIVים הופכים בלתי נראים מעל הפריים. רואים שטח שחור למעלה ורק אז מתחיל הדף שבאיפריים.

    ניסיתי גם להחליף ל-


    style.display='none'

    אבל גם לא עבד. למישהו יש מושג למה? 🙂

    בכל מקרה, אני האיפריים שמתחת ל DIVים נמצא גם הוא בתוך DIV במיקום אבסולותי, כיצד אני יכול לעשות ששהDIVים לא ייראו, האיפריים יעלה?

    ותודה רבה לכולם על התגובות

    אור

שלח תשובה