שלח תשובה

זירת השאלות

625
צפיות
14
תשובות

אנשים… בעיית DHTML

,‏ 1 במאי, 2004

אני מנסה לעשות לחצן שברגע שלוחצים עליו אז ה-BORDER שלו הופך ל-INSET וברגע שעוזים אותו אז הוא חוזר להיות OUTSET
הלחצן שלי הוא SPAN וזה הקוד שלו

<span class="menuButton" onmouseover="menuBgColor('nirTheKing','over')" onmouseout="menuBgColor('nirTheKing','out')" onkeydown="menuBgColor('nirTheKing','up')" id="nirTheKing"> ניר המלך </span>

(אל תתיחסו ל-ID)
וזו הפונקציה שאני עושה


function menuBgColor(id,type){
var obj = document.getElementById(id);
switch (type){
case "over":
obj.style.backgroundColor="#FDD601"
obj.style.borderStyle="outset"
break;
case "out":
obj.style.backgroundColor="#FFFFFF"
obj.style.borderStyle="solid"
break;
case "up":
obj.style.backgroundColor="#FDD601"
obj.style.borderStyle="inset"
break;
}
}


משום מה אירוע onkeydown לא מתבצע לי מישהו יכול לעזור לי
בתודה ניר

תגיות:

14 תשובות

  1. ניר טייב הגיב:

    יש ל בעייה בהתאמה עם IE
    אני עכשיו בונה את האתר שלי על מוזילה (מההתחלה) הכל עובד מצוין גם בו וגם ב-IE אבל אני עושה תפריט אופקי נפתח ונתקלתי בבעיה. אני משתמש במאפיין margin-right של אלמנטי התיבות (במקרה שלי SPANים) עכשיו במוזילה אני כותב במאפיין הזה 90 והוא נמצא מתחת ללחצן של התפריט אבל ב-IE הוא נמצא מתחת ללחצן אבל מימינה לו ז"א ב-IE ה-margin-right שעשיתי לא מספיק וצריך להגדיל אותו
    עכשיו יש לי אפשרות כזאת
    לשלוח פרמטר נוסף שיהווה את ה-margin-right ב-IE ואז עושים בדיקה של הדפדפן
    ושמים את המרג'ין בהתאם.

    האם להשתמש בה? או שיש אפשרות יותר טובה ויעילה ?

    בתודה ניר

  2. ניר טייב הגיב:

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

  3. ניר טייב הגיב:

    ויתרתי על התפריט נפתח אבל יש לי
    בעייה אחרת
    שמתי למסמך שלי DOCTYPE של XHTML transintion(כך כותבים?!!!)
    וב-IE אפקט הכפתור שעשיתי על SPAN נעלם לי לעומת מוזילה שעשתה לי את האפקט כמו שצריך
    אם אני מוריד את ה-DOCTYPE אז אפקט הכפתור עובד אבל אני עדיין רוצה לעשות את המסמך שלי תקין אז מה אני יכול לעשות
    העלתי עמוד HTM שיראה את הדברים

  4. ניר טייב הגיב:

    יש אם זה בעייה
    הקלאסים שנמצאים בקובץ CSS חיצוני לא נכנסים לי למערך האם יש פיתרון לכך?
    (שהקלאסים החיצוניים כן יכנסו למערך ?)

    בתודה ניר

  5. ניר טייב הגיב:

    מצטער טעות שלי (ובעיה)
    לא ניגשתי למערך של ה-קלאסים נכון שכחתי S ב-styleSheets ו-IE ומוזיךה ךא החזירו לי ERROR (כי השתמשתי בזה בלולאה אבל אני לא יודע חוץ מזה)
    אז חשיבתי הייתה לא נכונה.
    בכל מקרה הבעיה שלי אני רוצה לבדוק אם קיימת תכונה מסוימת בקלאס מסוים ואם כן לשנות בהתאם לדפדפן (במקרה הזה היד החמה)
    עשיתי לולאה שרצה על הקלאסים הקיימים ומכניסה לתוך איבר מערך אחר את כל ה-rules של הקלאס (rules- כל המאפיינים הנמצאים בקלאס אחד)
    עכשיו שעשיתי את הבדיקה של אם קיים מאפיין ה-cursor זה הביא לי הודעת שגיאה שהוא לא מכיר במאפיין cursor
    זה הקוד שעשיתי


    function styleForNavigator(){
    var theRules = new Array();
    if (!document.styleSheets) return;
    for (var i=0;i<document.styleSheets.length;i++){
    if (document.styleSheets[i].cssRules)
    theRules[i] = document.styleSheets[i].cssRules;
    else if (document.styleSheets[i].rules)
    theRules[i] = document.styleSheets[i].rules;
    else return;

    if(theRules[i].style.cursor){
    if (navigator.appName=="Microsoft Internet Explorer")
    theRules[i].style.cursor = "hand"
    else
    theRules[i].style.cursor = "pointer"
    }
    }
    }

    בתודה ניר

  6. אמממ…
    קודם כל – זה מיותר.
    תכתוב בסטייל שלך pointer ויראו את זה בשניהם.

    אתה לא יכול לכתוב hand כי מוזילה לא יזהה אותו. [ראה אלרט ראשון בקובץ המצורף – הוא פשוט לא מתייחס ל-cursor אם יש שם hand], כך שאת ההחלפה תצטרך לעשות רק ל-IE, וזה כבר מיותר.

  7. ניר טייב הגיב:

    הקטע הוא שלכל מי שאין IE 6
    או ליתר דיוק IE 5.5 ומעלה יוכל לראות את היד החמה כי IE 5 ומטה לא מכירים בזה ואני רוצה שגם לכל גרסאות אקספלורר וגם בכל הדפדפנים האחרים יראו את היד החמה

    כנראה לא הבנתי נכון את הדברים
    המערך styleSheets אז באיבר הראשון שלו (0) יש את כל הקלאסים שהוגדרו בבלוק העיצוב הראשון במסמך ?
    ז"א בעמוד שהעלת יש את זה

    <style>
    .fah{font-weight:bold;cursor:hand;}
    .gah{font-weight:bold;cursor:pointer;}
    .dah{text-decoration:underline;color:red;}

    </style>

    והסקריפט מתייחס רק לאיבר הראשון 0 שבמערך ובאלרטים (במוזילה) מופיעים הקלאסים האלו האם עכשיו הבנתי את האוסף ?

  8. כן
    והאלרטים באים רק כדי להראות לך שמוזילה מתעלם לחלוטין מהנאפיין cursor אם כתוב לו hand.
    לכן צריך לכתוב pointer, ולהריץ את הסקריפט שמשנה ל-hand רק לגולשי IE.

  9. ניר טייב הגיב:

    בניתי אצלי פונקציה כמו שלך
    רק בלי האלרט וגולש אחד שמשתמש ב-IE 5 (ב-WIN 98) אמר לי שהוא לא רואה את היד החמה . סימן שזה לא משנה ל-HAND

שלח תשובה