none
עזרה דחופה ב javascript RRS feed

  • שאלה

  • היי, 

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

    אז ככה-

    כתבתי את הקוד:

      
            function random() {
                document.getElementsByClassName("buttonsWords").onclick = "enable(){return false;}";
                
                if (arrRandom.length < 6) {
                    var r = (parseInt)(Math.random() * 14) + 1;
                    arrRandom[arrRandom.length] = r;
                }
                for (var i = 0; i < arrRandom.length; i++) {
                    {
                        var x = setTimeout('changeColor(i)', 1000);
                        clearTimeout(x);
                    }
                    setInterval('timerfunc()', 1000);
                }
    
            }
            function timerfunc()
            {
                if(Number(getElementById("timer").textContent)>0)
                    document.getElementById("timer").textContent=(Number(getElementById("timer").textContent)-1).toString();
                else
                    document.getElementById("timer").textContent="sorry=( time out!";
            }
            function changeColor(i) {
                document.getElementById(arrRandom[i].toString()).backgroundColor = "red";
                document.getElementById(arrRandom[i].toString()).style.fontStyle.fontcolor = "green";
            }

    הןא מגריל לי טוב את המספרים לתוך arrRandom אבל הוא לא עושה את settimeout עם הפונקציה changeColor שאמורה לשנות לי את הצבע של הרקע של האלמנט עם הid ששווה לתוכן של arrRandom[i]n (עשיתי tostring כי הוא מקבל מחרוזת, זה נכון?) למשך הזמן שכתבתי ואח"כ שהמצב יחזור למה שהיה קודם. אבל הוא לא עושה לי כלום !גם לפונקציה timerfunc הוא לא מתיחס.

    אשמח לתשובה מהירה ו...נכונה!

    תודה!!=)

    יום רביעי 04 פברואר 2015 22:34

תשובות

  • אהלן

    יש אפשרות שתעלה לנו פרייקט דוגמה. ז"א א צריך את כל מה שלא קשור אלא רק דף HTML עם ה סקריפטים הרלוונטיים של ה JS כדי שנוכל לעבור על הדברים יותר מהר. ייתכן שיש דיי הרבה שגיאות קטנות בקוד... לי מייד קפצה שגיאה אחת קריטית, כאמור מייד אחרי נמצאה שגיאה נוספת. אולי אם נראה את הדברים בפועל נוכל לעבור מהר יותר וביעילות יותר.

    * במקביל אני מאוד ממליץ למוד JSASCRIPT מסודר מעט יותר. מצב בו יש שגיאות רבות (קטנות או גדולות) ולא נקודה ספיצית, בדרך כלל מצביע על כך שחסר לך את הבסיס המסודר, ולמדת את הדברים בצורה לא מסודרת על ידי נסיון לעבור מבעיה לבעיה (ללא תיאוריה מסודרת).

    ** לא כל אחד יכול ללמוד לבד מסודר! למעשה רוב האוכלוסיה אינם יכולים וזה לא קשור לכמה הם חכמים... לכן המציאו בתי ספר ומורים... זה תהליך טיבעי לנסות לקפוץ לנקודה מסויימת, לדלג על דברים שניראים קלים, לעבור לראות טלוויזיה או כל דבר אחר שמוציא אותנו מהליך הלימוד המסודר, ולקלקל את הלימוד העצמי :-(

    בקיור הבא תוכל למצווא מדריך בסיסי ל JS. לימוד הבסיס היה מונע את הטעויות שהועלו עד כה למשל.
    http://www.w3schools.com/js/

    קח הפסקה בפיתוח ונסה ללמוד בצורה מסודרת לפםחות את הבסיס (אני מאוד ממליץ) גם אם נראה לך שאתה כבר יודע, בלי לדלג על שלבים. זה קורס מסודר הכולל הדגמות. בכל מקום יש כפתור "Try it Yourself" אתה אמור ללחוץ עליו ולראות את ההדגמה ואולי גם לשחק מעט עם הקוד עד להבנה מלאה. הדבר היחידה שחסר שם זה תירגולים (ז"א שאלות ותשובות שעלייך לענות) אבל ההדגמות אמורות לתת חלק :-)


    signature   Ronen Ariely
     [Personal Site]    [Blog]    [Facebook]

    • הוצע כתשובה על-ידי Eran Sharvit יום שישי 06 פברואר 2015 14:55
    • סומן כתשובה על-ידי Eran Sharvit יום רביעי 11 פברואר 2015 12:57
    יום חמישי 05 פברואר 2015 17:26
    מנחה דיון

כל התגובות

  • הןא מגריל לי טוב את המספרים לתוך arrRandom אבל הוא לא עושה את settimeout עם הפונקציה changeColor שאמורה לשנות לי את הצבע של הרקע של האלמנט עם הid ששווה לתוכן של arrRandom[i]n (עשיתי tostring כי הוא מקבל מחרוזת, זה נכון?) למשך הזמן שכתבתי ואח"כ שהמצב יחזור למה שהיה קודם. אבל הוא לא עושה לי כלום !גם לפונקציה timerfunc הוא לא מתיחס.

    אשמח לתשובה מהירה ו...נכונה!

    תודה!!=)

    אתה כתבת את הקוד, או שחיברת כמה קודים מכמה מקומות?

    מה המשמעות של שני השוורת הבאות ביחד?!?

    var x = setTimeout('changeColor(i)', 1000);
    clearTimeout(x);

    clearTimeout: Prevent the function set with the setTimeout() to execute. It clears a timer set with the setTimeout() method.

    זנ מסביר את העניין :-) ?


    signature   Ronen Ariely
     [Personal Site]    [Blog]    [Facebook]



    • נערך על-ידי pituachMVP, Moderator יום חמישי 05 פברואר 2015 01:32
    • הוצע כתשובה על-ידי tetitu יום חמישי 05 פברואר 2015 11:13
    • הצעה כתשובה בוטלה על-ידי pupil or student יום חמישי 05 פברואר 2015 13:28
    יום חמישי 05 פברואר 2015 01:26
    מנחה דיון
  • תודה על הניסיון לעזור =>

    ו..כן, אני כתבתי את הקוד.(אשמח אם תמליץ לי על לינקים לפונקציות וקודים שונים)

    אבל זה גם כשאני מוחקת את שורת הקוד clearTimeout הוא לא עושה כלום, 

    אני שמתי את clearTimeout כי חשבתי שככה עושים כדי שזה יחזור למה שהיה לפני הפונקציה שבתוך ה settimeout,לא ככה עושים?

    אני עדיין מחכה לתשובה.

    יום חמישי 05 פברואר 2015 13:33
  • עוד בעיה זה סינטקס לא נכון רצית לכתוב ככה:

    var x = setTimeout('changeColor('+i+')', 1000);
    

    יום חמישי 05 פברואר 2015 16:10
  • צודק באמת התלבטתי על זה, שינתי וזה לא עזר .

      Console ב F12בדקתי עם ה

    :הוא מראה שהוא הגריל

    arrRandom
    [9]

    אבל הוא כותב טעות

    Uncaught ReferenceError: getElementById is not defined

     וכן מוגדר לו אלמנט(כפתור) עם כזה id

    בכולופן, תודה על התיקון=) 

    ואני עדיין מחכה לתשובה

    ועד משהו כללי:

    איך אני נגשת מהjavascript לתכונות-attribute של אלמנט מסוים?

    hidden שיהיה לא hidden לדוגמא אלמנט שהיה

    תודה

    • נערך על-ידי pupil or student יום חמישי 05 פברואר 2015 16:48
    יום חמישי 05 פברואר 2015 16:35
  • אהלן

    יש אפשרות שתעלה לנו פרייקט דוגמה. ז"א א צריך את כל מה שלא קשור אלא רק דף HTML עם ה סקריפטים הרלוונטיים של ה JS כדי שנוכל לעבור על הדברים יותר מהר. ייתכן שיש דיי הרבה שגיאות קטנות בקוד... לי מייד קפצה שגיאה אחת קריטית, כאמור מייד אחרי נמצאה שגיאה נוספת. אולי אם נראה את הדברים בפועל נוכל לעבור מהר יותר וביעילות יותר.

    * במקביל אני מאוד ממליץ למוד JSASCRIPT מסודר מעט יותר. מצב בו יש שגיאות רבות (קטנות או גדולות) ולא נקודה ספיצית, בדרך כלל מצביע על כך שחסר לך את הבסיס המסודר, ולמדת את הדברים בצורה לא מסודרת על ידי נסיון לעבור מבעיה לבעיה (ללא תיאוריה מסודרת).

    ** לא כל אחד יכול ללמוד לבד מסודר! למעשה רוב האוכלוסיה אינם יכולים וזה לא קשור לכמה הם חכמים... לכן המציאו בתי ספר ומורים... זה תהליך טיבעי לנסות לקפוץ לנקודה מסויימת, לדלג על דברים שניראים קלים, לעבור לראות טלוויזיה או כל דבר אחר שמוציא אותנו מהליך הלימוד המסודר, ולקלקל את הלימוד העצמי :-(

    בקיור הבא תוכל למצווא מדריך בסיסי ל JS. לימוד הבסיס היה מונע את הטעויות שהועלו עד כה למשל.
    http://www.w3schools.com/js/

    קח הפסקה בפיתוח ונסה ללמוד בצורה מסודרת לפםחות את הבסיס (אני מאוד ממליץ) גם אם נראה לך שאתה כבר יודע, בלי לדלג על שלבים. זה קורס מסודר הכולל הדגמות. בכל מקום יש כפתור "Try it Yourself" אתה אמור ללחוץ עליו ולראות את ההדגמה ואולי גם לשחק מעט עם הקוד עד להבנה מלאה. הדבר היחידה שחסר שם זה תירגולים (ז"א שאלות ותשובות שעלייך לענות) אבל ההדגמות אמורות לתת חלק :-)


    signature   Ronen Ariely
     [Personal Site]    [Blog]    [Facebook]

    • הוצע כתשובה על-ידי Eran Sharvit יום שישי 06 פברואר 2015 14:55
    • סומן כתשובה על-ידי Eran Sharvit יום רביעי 11 פברואר 2015 12:57
    יום חמישי 05 פברואר 2015 17:26
    מנחה דיון
  • בקישור הבא יש לך רשימה של פונקציות בשפת JS. זו אינה רשימה מלאה אבל בהחלט אינדקס טוב.

    אבל אני חוזר על ההמלצה החמה מאוד! קודם ללמוד בצורה מסודרת את הבסיס גם אם כבר למדת אותו בעבר. זה יעזור לסגור חורים ולהזכיר דברים.

    https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Methods_Index


    signature   Ronen Ariely
     [Personal Site]    [Blog]    [Facebook]

    יום חמישי 05 פברואר 2015 17:29
    מנחה דיון

  • אני שמתי את clearTimeout כי חשבתי שככה עושים כדי שזה יחזור למה שהיה לפני הפונקציה שבתוך ה settimeout,לא ככה עושים?

    ממש לא, כמו שכתבתי באינגלית (זה ציטוט מההדרה הרשמית) המתודה הזו עושה בדיוק את מה שאת תיארת שקורה, היא מבטל את המתודה הקודמת על כך שהיא מאפסת את ציר הזמן.

    היא נועדה למצב בו רוצים להפסיק תזמון שנעשה עם הפונקציה setTimeout. למשל אם יש מצב בו יש לולאה אין סופית על ידי setTimeout שמריץ את עצמו כל 10 שניות, אז אפשר לשבור את התזמון ולעצור את הלולאה על ידי clearTimeout (כמובן שיש לו עוד שימושים, וזו רק דוגמה)


    signature   Ronen Ariely
     [Personal Site]    [Blog]    [Facebook]


    יום חמישי 05 פברואר 2015 17:31
    מנחה דיון
  • תודה על העצות אני חושבת שזה מה שאני אעשה

    אבל בינתיים אני צריכה להגיש לתחילת שבוע הבא פרוייקט שהוא משחק כלשהוא

    אני לא לומדת לבד , אלא במכללה מטעם מה"ט במגמת הנדסאות תוכנה ומשום מה המורה שמלמדת  jsלא יודעת לללמד והיא גם לא מעודכנת היא בעצמה אף פעם לא עבדה בjavascript או html

    אין לנו ברירה אלא לנסות ללמוד לבד

    היו לנו סה"כ 7 שעות ב javascript

    לקבוצה בת כ30 תלמידים

    המורה אומרת שהלימוד הכי טוב זה פשוט לשבת ולנסות היא בעצמה לא יודעת לענות על השאלות ששאלתי, היא רק רוצה לראות פרויקט גמור

    שוב תודה על העזרה והעצות=)


    • נערך על-ידי pupil or student יום חמישי 05 פברואר 2015 17:59
    יום חמישי 05 פברואר 2015 17:58
  • זה עצוב מאוד לשמוע את זה :-(
    אני ממש רציני, חבל מאוד שזה המצב כי מי שלומד בצורה מסודרת לא היה אמור להגיע למצב הזה

    תנסי לעבור על המדריך ששמתי לך כאן, ואת מוזמנת להמליץ גם לחברים לעבור עליו בצורה מסודרת.
    אם יעלו שאלות תוך כדי הלימוד שלו תבואו לשאול, וחברי הפורום ישמחו לעזור :-)

    * בכל מקרה כדאי תמיד להעלות דוגמה מעשית של מה ששואלים. זה מאוד קל מכיוון שאתם עובדים עם JS בצד הלקוח וזה אומר שלא צריך שרת, אלא רק להעלות לפורום קובץ זיפ שכולל את ה HTML+CSS+JS.


    signature   Ronen Ariely
     [Personal Site]    [Blog]    [Facebook]

    יום חמישי 05 פברואר 2015 18:53
    מנחה דיון