ABA


"העברת משתנה מתוך פונקציה למשתנה גלובלי בJS"
גירסת הדפסה        
קבוצות דיון פיתוח, תיכנות ובניית אתרים נושא #22064 מנהל    סגן המנהל    מפקח   Winner    צל"ש   מומחה  
אשכול מספר 22064
code_blue  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 5.7.06
21280 הודעות, 7 פידבק
   11:45   23.10.17   
אל הפורום  
  העברת משתנה מתוך פונקציה למשתנה גלובלי בJS  
 
   יש לי פונקציה שהיא מעיין לופ ומפסיק אותה על ידי clearTimeout
אני רוצה שברגע שאני עושה את העצירה אוכל להתחיל מאותו מקום
לכן אני צריך שערך מסויים שרץ שם (קאונטר) ישמר לי גם בגלובל
ואוכל להשתמש בו להפעלת הפונקציה מהמקום הזה


                                שתף        
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

  האשכול     מחבר     תאריך כתיבה     מספר  
  ומה הבעיה? תגדיר את המשתנה מחוץ לSCOPE של הפונקציה sza  23.10.17 20:39 1
     יש בעיה כי לא עבד לי code_blue  24.10.17 06:48 2
         יש מצב שכשאתה משתמש באותו משתנה בתוך הפונקציה שלך אתה מצהיר עליו שוב? bmelad  24.10.17 07:11 3
  תודה רבה לשניכם על העזרה code_blue  24.10.17 08:42 4
     הבעיה שלך זה בדיוק מה שניחשתי בהודעה הקודמת bmelad  24.10.17 18:19 5
         לא ירדתי לסוף דעתך למה אתה מתכוון code_blue  24.10.17 19:25 6
             מי אמר ארגומנטים בתוך פונקציה? bmelad  25.10.17 05:22 7
                 עדיין לא הבנתי מה אני צריך לשנות code_blue  25.10.17 06:34 8
                     חבל שזה פרוייקט להעלות screenshots לפורום bmelad  25.10.17 19:33 9
                         לא הבנתי את הערה code_blue  25.10.17 19:48 10
  יש קונטיינר מאד מעניין לעשות את זה עם משהו שנקרא GENERATOR Simple  08.11.17 22:17 11

       
sza  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 26.4.02
12357 הודעות, 22 פידבק
   20:39   23.10.17   
אל הפורום  
  1. ומה הבעיה? תגדיר את המשתנה מחוץ לSCOPE של הפונקציה  
בתגובה להודעה מספר 0
 


צחי.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
code_blue  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 5.7.06
21280 הודעות, 7 פידבק
   06:48   24.10.17   
אל הפורום  
  2. יש בעיה כי לא עבד לי  
בתגובה להודעה מספר 1
 
   ערכתי לאחרונה בתאריך 24.10.17 בשעה 06:51 בברכה, code_blue
 
לי זה לא חח
קראתי קצת ולא ממש עבד לי
עשיתי הצהרה מחוץ לפונקציה var i ואז עשיתי לולאה עעל בסיס של טיימר שמריץ את אותה לולאה

אני רוצה בזמן שאני עושה stop הערך של הקאונטר יהיה זמין גם בגלובלי ואז יהיה אפשרי לעשות start עם הערך הזה ויתחיל משם בהרצה הבאה


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
bmelad 
חבר מתאריך 23.12.14
79 הודעות
   07:11   24.10.17   
אל הפורום  
  3. יש מצב שכשאתה משתמש באותו משתנה בתוך הפונקציה שלך אתה מצהיר עליו שוב?  
בתגובה להודעה מספר 2
 
   ז"א אם מחוץ ל- scope של הפונקציה הצהרת על var i
כשאתה משתמש בו בתוך הפונקציה אל תצהיר שוב, אלא תשתמש בו כאילו הוא קיים, למשל אם יש לך לולאה שנראית כך:

for (var i = 0; i < 10; ++i)

תשמיט את המילה var ותהפוך אותה לכזו:

for (i = 0; i < 10; ++i)



                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
code_blue  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 5.7.06
21280 הודעות, 7 פידבק
   08:42   24.10.17   
אל הפורום  
  4. תודה רבה לשניכם על העזרה  
בתגובה להודעה מספר 0
 
   כדי שהדיון יהיה פחות תאורטי אני אוסף את קטעי הקוד
זאת הלולאה שרצה :
אני לוקח מערך שיש לי ב PHP ומעביר למערך ב JS ומשם מתחיל
זה ב HEAD

<?php $files =glob('*.html');?>
<script type="text/javascript">
var files = <?php echo json_encode($files) ?>;
var i;
timeto=15000;
function nextit(i,st,ttl)
{
if (i === files.length){ i=0; }
if (st == 'stop'){clearTimeout(myVar);}
else
{document.getElementById('out').innerHTML=files; document.getElementById('my1').src=files; myVar=setTimeout(function(){nextit(i,'',ttl)},ttl);}
i++;
}
</script>

ואז יש לי START ו STOP שהם ב BODY


<button onclick="nextit(0,'start',document.getElementById('ttime').value*1000);"> start rotating</button>  <button onclick="nextit(0,'stop','')";>stop rotating</button>    MAP NAME : <span id="out" style="font-size:20px">


עכשיו ב START שדה ההתחלה הוא 0 כי כשניסיתי לשים i הוא לא עבד פשוט


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
bmelad 
חבר מתאריך 23.12.14
79 הודעות
   18:19   24.10.17   
אל הפורום  
  5. הבעיה שלך זה בדיוק מה שניחשתי בהודעה הקודמת  
בתגובה להודעה מספר 4
 
   רק שבמקום לכתוב var בתוך הפונקציה, אתה מקבל ארגומנט בשם i לתוך הפונקציה שלך.
נסה להחליף את השם של i בארגומנטים של הפונקציה או במשתנה הגלובלי למשהו אחר.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
code_blue  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 5.7.06
21280 הודעות, 7 פידבק
   19:25   24.10.17   
אל הפורום  
  6. לא ירדתי לסוף דעתך למה אתה מתכוון  
בתגובה להודעה מספר 5
 
   מה הכוונה בהחלפת ארגומנטים בתוך הפונקציה


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
bmelad 
חבר מתאריך 23.12.14
79 הודעות
   05:22   25.10.17   
אל הפורום  
  7. מי אמר ארגומנטים בתוך פונקציה?  
בתגובה להודעה מספר 6
 
   ארגומנט = פרמטר שהפונקציה מקבלת.
בחתימה של הפונקציה יש ארגומנט בשם i וגם ב- Global scope יש משתנה בשם i. זו הסיבה שבתוך הפונקציה שלך כל התייחסות ל- i לא תהיה למשתנה החיצוני, אלא לזה שהפונקציה כבר מכירה מהחתימה שלה.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
code_blue  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 5.7.06
21280 הודעות, 7 פידבק
   06:34   25.10.17   
אל הפורום  
  8. עדיין לא הבנתי מה אני צריך לשנות  
בתגובה להודעה מספר 7
 
   לא מכיר את המינוחים ואת הכתיבה הנכונה

ממש תודה
@bmelad@


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
bmelad 
חבר מתאריך 23.12.14
79 הודעות
   19:33   25.10.17   
אל הפורום  
  9. חבל שזה פרוייקט להעלות screenshots לפורום  
בתגובה להודעה מספר 8
 
   בכל אופן, תסתכל על הפונקציה שלך, היא מקבלת 3 פרמטרים.
לפרמטר הראשון קוראים i. גם למשתנה שהגדרת מחוץ לפונקציה קראת i.
ה- i של הפונקציה "מנצח" את ה- i שהגדרת מחוץ לפונקציה ולכן כל עוד לא תטפל בכפילות השמות הזו, לא תוכל להתייחס ל- i שמחוץ לפונקציה.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
code_blue  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 5.7.06
21280 הודעות, 7 פידבק
   19:48   25.10.17   
אל הפורום  
  10. לא הבנתי את הערה  
בתגובה להודעה מספר 9
 
   איזה screenshots ואיזה פרוייקט
בכל אופן מצאתי את הבעיה היא דווקא לא היתה קשורה בפונקיה אלא בהפסקה שלה , כשסגרתי את המשתנה ש הטיימר זה איפס את כל המשתנים בפנים

פיצלתי ל2 פונקציות אחת שמתעסקת בstart/stop ואחת שסך הכל מקבלת את המשתנה של הקאונטר ועושה את ההצגה שאני צריך , ככה כשאני מפסיק את הפונקציה הראשית אין השפעה על הפונקציה המשנית שמשם אני שולף את המשתנה


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Simple  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 28.1.06
18765 הודעות, 22 פידבק
   22:17   08.11.17   
אל הפורום  
  11. יש קונטיינר מאד מעניין לעשות את זה עם משהו שנקרא GENERATOR  
בתגובה להודעה מספר 0
 
   של תכנות פונקציונלי שמאפשר לך למשוך מהלולאה מתי שבא לך את האיבר הבא (ממומש בדרך מאד מעניינת על ידי רשימות עצלות-ממליץ לקרוא מאד מעניין ;))


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

תגובה מהירה  למכתב מספר: 
 
___________________________________________________________________

___________________________________________________________________
למנהלים:  נעל | תייק בארכיון | מחק | העבר לפורום אחר | מחק תגובות | עגן אשכול
       



© כל הזכויות שמורות ל-רוטר.נט בע"מ rotter.net