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

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

link 14-05-10 12:02

בעיה מאוד מוזרה שיש לי עם js
 
שלום לכולם, אני בונה בעזרת jquery פונקציה מסוימת(לא חשוב מהי כרגע). יש לי קובץ של פונקציות שאני עשיתי(בנוסף לקבוץ ספריה שלה) ויש בה פונקציה די פשוטה שבשביל לבדוק שהיא עובדת אז עשיתי שהיא סתם תעשה alert. הבעיה היא שכשאני עושה את הדבר הבא
קוד:

<td class='td_menu'><span onclick=\"block_generator();\">{$i}</span></td>
אז לא קורה כלום. שום דבר. אבל כשאני עושה את זה:
קוד:

<td class='td_menu'><span onclick=\"alert('a');\">{$i}</span></td>
אז הפוקנציה עובדת. אני גם מצרף את הקובץ פונקציה החיצוני:
קוד:

$(document).ready(function(){

        $("#menu_tree_0").hover(
                function(){
                        $("#menu_branch_0").slideToggle("slow");
                },
                function(){
                        $("#menu_branch_0").slideToggle("fast");
                }
        );

        $("#menu_tree_1").hover(
                function(){
                        $("#menu_branch_1").slideToggle("slow");
                },
                function(){
                        $("#menu_branch_1").slideToggle("fast");
                }
        );

        $("#menu_tree_2").hover(
                function(){
                        $("#menu_branch_2").slideToggle("slow");
                },
                function(){
                        $("#menu_branch_2").slideToggle("fast");
                }
        );

        $("#menu_tree_3").hover(
                function(){
                        $("#menu_branch_3").slideToggle("slow");
                },
                function(){
                        $("#menu_branch_3").slideToggle("fast");
                }
        );

        function block_generator()
        {
                alert ( '1' );
        }
});

אני עובד עם דפדפן כרום אבל גם בIE מתרחשת אותה הבעיה.

יש למישהו הסבר או פתרון לדבר?

Shay Ben Moshe 14-05-10 12:05

הפתרון הוא לא להשתמש בonclick אלא בevent בjquery. זה גם יותר יפה :)
http://api.jquery.com/click/

link 14-05-10 12:31

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

Shay Ben Moshe 14-05-10 12:33

לא בטוח שאני מבין, אבל אם אני מבין פשוט תן איזה class לכל אלה שאמורים לפעול ואז תעשה.
קוד:

$('YOUR_CLASS_NAME').click(function(){
        js on click...
});


link 14-05-10 12:39

יש עדיין בעיה. יש לי מערך שהוא התפריט שהוא הולך ככה:

קוד:

$down_menu = array        (
                                0 => array        (
                                                        'עמוד ראשי'        => array        (
                                                                                        'main'                        => 'עמוד ראשי',
                                                                                        'diff&do=forum'        => 'עבור אל הפורום',
                                                                                        'diff&do=logout'        => 'התנתקות בטוחה',
                                                                                ),

                                                        'גיבוי' => array                (
                                                                                        'backup'                => 'ראשי',
                                                                                        'backup&do=download'        => 'הורדת גיבויים שמורים',
                                                                                        'backup&do=restore'        => 'שחזר',
                                                                                ),

                                                        'שליטה מהירה' => array        (
                                                                                        'cmd'                        => 'שליטה מהירה',
                                                                                        'cmd&do=last'                => 'פעולות אחרונות',
                                                                                ),       
                                                ),

                                1 => array        (

                                                        'ניהול' =>array        (
                                                                                'skin'                => 'ניהול סקינים',
                                                                                'lang'                => 'ניהול שפה',
                                                                        ),
                                                ),

                                2 => array        (
                                                        'הגדרות' => array        (
                                                                                'settings'                        => 'אינדקס ניהול',
                                                                                'settings&do=search'                => 'חיפוש הגדרות',
                                                                                'settings&do=add_new_file'        => 'הוסף הגדרות',
                                                                        ),

                                                        'שונות' => array                (
                                                                                        'diff&do=cenz'                => 'ניהול צנזורה',
                                                                                        'diff&do=smile'                => 'ניהול סמיילים',
                                                                                        'diff&do=searches'        => 'ניהול חיפושים',
                                                                                ),

                                                        'מודלים' => array                (
                                                                                        'moudle'                => 'אינדקס ניהול',
                                                                                        'moudle&do=add'                => 'הוספת מודלים',
                                                                                        'moudle&do=create'        => 'יצירת מודלים',
                                                                                        'moudle&do=backup'        => 'גיבוי מודלים'
                                                                                ),
                                                ),


                                3 => array        (
                                                        'ניהול פורומים' => array        (
                                                                                        'forum'                        => 'אינדקס ניהול',
                                                                                        'forum&do=add_forum'        => 'הוספת פורום',
                                                                                        'forum&do=add_catagory'        => 'הוספת קטגוריה',
                                                                                        'forum&do=sync'                => 'סנכרן',
                                                                                ),

                                                        'קהילה'        => array        (
                                                                                        'users'                        => 'אנידקס ניהול',
                                                                                        'users&do=users_manage'        => 'ניהול משתמשים',
                                                                                        'users&do=groups_manage'=> 'ניהול קבוצות',
                                                                                        'users&do=rates_manage' => 'ניהול דירוגים',
                                                                                        'users&do=block_manage'        => 'ניהול חסימת משתמשים',
                                                                                ),

                                                        'לוח שנה'        => array        (
                                                                                        'calendar'                => 'אינדקס ניהול',
                                                                                        'calendar&do=add_cal'        => 'הוספת לוחות שנה',
                                                                                        'calendar&do=ghost'        => 'גיבוי ושחזור',
                                                                                ),       

                                                ),
                        );

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

Shay Ben Moshe 14-05-10 13:08

למה זה קורה?
בגלל שהפונקציה שלך היא בתוך הdocument ready של jquery והיא כנראה לא מוכנה כשאתה מצהיר על הonmouseclick. אני לא מבין מה הבעיה במקום לעשות echo 'onmouseclick..'; לעשות echo 'class="do_something"';?

link 14-05-10 13:27

אההה.. אוקי! אז הייתי צריך להשים את הפוקציה מחוץ לdoucment.ready.

עכשיו הכול עובד.

link 14-05-10 15:29

מה שכן... יש לי ערכים במערך בעברית ושימוש בajax ועברית מחזיר לי ג'יבריש. איך אפשר לפתור את זה?

Shay Ben Moshe 14-05-10 15:33

תעביר הכל אבל הכל לUTF8, אם זה הקבצים של הJS, הPHP הHTML הדרים הכל.

link 14-05-10 15:58

איך אני הופך את זה לutf-8? עם איזו פקודה?


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

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