שאלה בג'אווה סקריפט

  • פותח הנושא XiroX
  • פורסם בתאריך

XiroX

New member
שאלה בג'אווה סקריפט

יש לי אתר, ובו יש פורום שעובד בערך באותה דרך כמו תפוז (זא, כל ההודעות סגורות, אם לוחצים על כותרת היא נפתחת ונסגרת לחילופין). עכשיו, אני רוצה ליצור כפתור שיסגור או יפתח את כל ההודעות. אז עשיתי את הקוד הבא (הורדתי את כל מה קשור לחלק אחר של הקוד, שרובו כתוב ב PHP, והשארתי רק את הדברים הרלוונטים לג'אווה סקריפט:
var Re= new Array(); var Reb= new Array(); ... ... Re[Re.length]= <?=$m[ID]?> Reb[Reb.length]=<?=$m[Base_ID]?>​
בחלק הראשון אני מכריז על המערכים, לשני אני קורא כל פעם שאני יוצר הודעה חדשה בעץ הודעות, ככה שבסוף אמור להיות לי תיעוד של זיהוי לכל ההודעות בדף המסויים. אחרי זה הוספתי פונקציה כזאת:
function OpenCloseAll(Re,Reb) { for (i=0;i<Re.length;i++) { Vmsg(Re,Reb); } }

Vmsg היא פונקציה שבה אני משתמש בשביל לפתוח ולסגור הודעות גם ככה ואני יודע שאני עובד. לפונקציה אני קורא ככה
<a href="JavaScript:OpenCloseAll(Re,Reb)">Open/Close All Messages </a>​
אבל הוא לא משנה כלום מבחינת ההודעות, והוא גם לא זורק לי אף הודעת שגיאה בג'אווה קונסול של מוזילה. רציתי לדעת אם מישהו פה יכול למצוא איפה בדיוק הטעות שלי
 
פורום בוני אתרים אולי יותר מתאים...

אבל בכל מקרה... קצת קשה להבין ממה שנתת איפה הבעיה בדיוק, כי המון מידע חסר. בלי קשר לזה -- כשאתה משתמש במשתנה זמני כמו i בלולאת for תגדיר אותו עם var אחרת ה i הזה יהיה גלובאלי (כלומר אם למשל מתוך הלולאה תקרא לפונקציה שגם תשתמש ככה במשתנה באותו שם זה יהיה אותו משתנה והערך ירוץ בין שתי הלולאות הלא קשורות האלה). מעבר לזה -- למה לא לעשות את הפעולה הזאת בצורה גנרית עם getElementsByTagName?
 
למעלה