555
צפיות
צפיות
3
תשובות
תשובות
שאלה לגבי בניית תפריט מותאם אישית
בניתי דף HTML משולב עם JS המאפשר לי ליצור תפריט מותאם אישית בעת לחיצה על לחצן העכבר הימני.
כתובת:
הבעיה היא שזה עובד רק באקספלורר, ולא במוזילה.
לאחר בדיקות, מצאתי כי הפקודות הבעייתיות הן דווקא אלה שבודקות את הנקודות של העכבר:
קוד:
lastX=window.event.clientX;lastY=window.event.clientY;
הפקודות האלה נמצאות בתגית body במאפיין oncontextmenu, בשורה 94.
אני לא מבין מה הבעיה עם 2 הפקודות האלה.
אשמח לקבל עזרה.
תודה מראש!
3 תשובות
במוזילה/אופרה ודפדפנים שהם לא IE
ניהול אירועים הולך לפי פרמטר ששולחים לפונקציה
זאת אומרת שאין אובייקט event אלא פרמטר פונקציה שהוא כביכול אובייקט
למשל כדי ליצור ALERT שייתן את ערכי ה-X וה-Y של העכבר בזמן לחיצה אפשר לעשות כך:
<script type="text/javascript">
onclick = function(e){
alert("x coor is: "+e.clientX+'n y cor is: "+e.clientY);
}
</script>
כדי שזה יתאים גם לאקספלורר אפשר להכניס התניה פשוטה שתעשה שהמשתנה e יכיל ריפרנס לאובייקט event
<script type="text/javascript">
onclick = function(e){
if (navigator.appName=="Microsoft Internet Explorer"){
e=event;
}
alert("x coor is: "+e.clientX+'n y cor is: "+e.clientY);
}
</script>
הצעה
תכניס קודים לפונקציות ובאירועים תכניס רק קריאה לפונקציה
זה יעזור לך מאוד בשלוש דברים:
1. הפרדת קוד מתוכן
2. נוחות הדיבוג
4. לא יעבור בהכרח דרך מפרש ה-XML/SGML (תלוי אם אתה שם הערות XML סביב קוד ה-JS שלך)
onclick = function(e){ ??? זה חדש
אבל זה לא עובד לי.
אשמח לקבל הסבר נוסף על שיוך פונקציות לארועים בשיטה הזו
onclick = function(e){
}
ומאיפה IE יקבל את הפרמטר e ?
כנס
לכאן:
(לא רק ל-microsoft יש ריפרנס טוב)