![]() |
# 1 |
חבר מתקדם
|
קריאה לפונקציה שנמצאת בתוך $(document).ready() מבחוץ
מישהו יודע איך אפשר לקרוא לפונקצייה שמוגדרת בתוך $(document).ready() מפונקציה שנמצא מבחוץ?
כלומר משהו כזה: קוד:
function CallMe() { someFunc(); } $(document).ready(function() { function someFunc() { alert('something'); } });
__________________
הורדת שירים מיוטיוב, הורדת שירים, שירים להורדה, שירים להורדה מיוטיוב, העלאת תמונות |
![]() |
![]() |
# 2 |
אין כמו ב127.0.0.1
|
קוד:
$(document).ready(function() { var someFunc = function() { alert('something'); }; }); function CallMe() { $(function() { someFunc(); }); } |
![]() |
![]() |
# 3 |
חבר מתקדם
|
לא עובד.. והקטע שזה נתקע באיזו שגיאה כנראה שלא מוצגת לי ב-console
אם אני שם אלרט לפני הקריאה לפונקציה (ניסיתי גם לקרוא לזה סתם כמשתנה) זה עובד, אם אני שם את האלרט אחרי זה כבר לא עובד
__________________
הורדת שירים מיוטיוב, הורדת שירים, שירים להורדה, שירים להורדה מיוטיוב, העלאת תמונות |
![]() |
![]() |
# 4 |
אין כמו ב127.0.0.1
|
תוכל להביא פה את הקוד תכלס? אולי הבעיה בTIMEOUT
|
![]() |
![]() |
# 5 |
חבר מתקדם
|
יש לי -Timeout שמוגדר ככה (בתוך ה-ready):
קוד:
nextTO = setTimeout( function() { next(); } , 15000); קוד:
var stopTO = function() { clearTimeout(nextTO); alert('test'); } קוד:
function onStateChange(newState) { if(newState > 0) { $(function() { alert(newState); // עובד stopTO(); alert('test 11'); // לא עובד }); document.getElementById("blala").innerHTML = "stopped"; // לא עובד } }
__________________
הורדת שירים מיוטיוב, הורדת שירים, שירים להורדה, שירים להורדה מיוטיוב, העלאת תמונות |
![]() |
![]() |
# 6 |
אין כמו ב127.0.0.1
|
קודם כל תוסיף var לפני הnextTO.
דבר שני אם אתה מגדיר את הפונקציה רק לאחר הטעינה אפשר לקצר תהליכים: קוד:
$(function() { // כמו document.ready var nextTO = setTimeout( function() { next(); } , 15000); }); function onStateChange(newState) { if(newState > 0) { $(function() { alert(newState); // עובד clearTimeout(nextTO); alert('test'); alert('test 11'); // לא עובד }); document.getElementById("blala").innerHTML = "stopped"; // לא עובד } } |
![]() |
![]() |
# 7 |
משתמש - היכל התהילה
|
אתה לא יכול, או לפחות לא אמור להיות מסוגל.
זה לא באותו scope, זה לא אמור לפעול. אתה יכול להצהיר על משתנה בחוץ, ולתת לו ערך בפנים, אבל בגדול global variables זה bad practice. |
![]() |
![]() |
# 8 | |
אין כמו ב127.0.0.1
|
ציטוט:
אגב, אם כבר נכנסים לעניין של bad practice, באופן אישי באמת הייתי מעדיף לרשום: קוד:
$(function() { TO.set(15000); }); var TO = { obj : null, set : function(time) { this.obj = setTimeout( function() { next(); } , time); }, nullify : function() { clearTimeout(this.obj); } }; function onStateChange(newState) { if(newState > 0) { $(TO.nullify); document.getElementById("blala").innerHTML = "stopped"; // לא עובד } } |
|
![]() |
![]() |
# 9 |
חבר מתקדם
|
אין לי כ"כ חשק להתחיל לשנות את כל המבנה עכשיו (אם זאת תהיה הברירה היחידה אני אעשה את זה), אבל הדבר הראשון שכתבת גם לא עבד.
הגדרתי את nextTO בתור var וזה לא עוזר. עשיתי אלרט של טייפ-אוף ובפונקציה onStateChange (זאת שבחוץ) זה מחזיר לי undefined ואם אני עושה באותה פונקציה שמגדירה את זה זה רושם לי number
__________________
הורדת שירים מיוטיוב, הורדת שירים, שירים להורדה, שירים להורדה מיוטיוב, העלאת תמונות |
![]() |
![]() |
# 10 |
אין כמו ב127.0.0.1
|
אוקיי, הרצתי את הקוד, הבעיה מעצבנת וקשורה בסמנטיקה של Javascript.
לא עובד: קוד:
$(function() { var nextTO = setTimeout( function() { next(); } , 15000); }); קוד:
var nextTo; $(function() { nextTO = setTimeout( function() { next(); } , 15000); }); |
![]() |
![]() |
חברים פעילים הצופים באשכול זה: 1 (0 חברים ו- 1 אורחים) | |
כלים לאשכול | |
תצורת הצגה | |
|
|