הוסטס - פורום אחסון האתרים הגדול בישראל

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   jquery פונקציה חוזרת. (https://hosts.co.il/forums/showthread.php?t=87754)

morsrh 31-01-11 19:40

jquery פונקציה חוזרת.
 
ניסיתי לעשות משהו כזה:

PHP קוד:

function slideItDown(this){
    
this.slideDown();
}
function 
startit(){
    
slideItDown($("#bx"));


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

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

תודה.

Nivi 31-01-11 21:04

תנסה ככה:

PHP קוד:

function slideItDown(this){
    $(
this).slideDown();
}
function 
startit(){
    
slideItDown($("#bx"));



Shay Ben Moshe 31-01-11 21:55

@Nivi מה שאמרת לא נכון למעשה.
@IXCESE, הקוד שלך נכון רק שהמילה this לדעתי היא שמורה, קרא לזה בשם אחר. בנוסף, לשאלתך השנייה, לפתוח אובייקט חדש כל פעם זה לא כל כך יעיל, אם אתה משתמש באובייקט כמה פעמים תקרא אותו פעם אחת לתוך משתנה ותשמש בו, יותר נוח וחכם.

IgalSt 31-01-11 21:59

ציטוט:

נכתב במקור על ידי Nivi (פרסם 794729)
תנסה ככה:

PHP קוד:

function slideItDown(this){
    $(
this).slideDown();
}
function 
startit(){
    
slideItDown($("#bx"));



זה קצת פחות יעיל כי אתה הפוך את האלמנט פעמיים לאובייקט jQuery וזה מיותר.
הנה שתי אפשרויות: http://jsbin.com/idisu4

בכל אופן, נראה לי שמה שאתה מנסה לעשות אמור להעשות בצורה שונה למען האמת.
רוצה אולי להסביר קצת יותר מה המטרה ונציע דרכים יותר טובות למימוש?

morsrh 31-01-11 22:47

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

~The_Sultan~ 01-02-11 07:44

אולי פשוט:
PHP קוד:

onclick="$(this).slideDown();" 

יעבוד?

IgalSt 01-02-11 10:15

ציטוט:

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

אם זה המצב, למה לא לעשות ככה?
http://jsbin.com/idisu4/3

morsrh 01-02-11 10:32

זה בערך מה שאני מחפש , אבל שוב זה לא יפתח כל פעם אובג'קט מחדש?

IgalSt 01-02-11 14:05

ציטוט:

נכתב במקור על ידי IXCESE (פרסם 794785)
זה בערך מה שאני מחפש , אבל שוב זה לא יפתח כל פעם אובג'קט מחדש?

אתה יוצר אובייקט jQuery אחד ע"י $('.myBx') ומצמיד אירוע לכל אחד מהאלמנים ששיכים לאוביקט הזה (בעצם כל מי שיש לו את ה-class).
בלחיצה על האלמנט נוצר אובייקט jQuery ע"י $(this)


כל הזמנים הם GMT +2. הזמן כעת הוא 19:17.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ