עבור לתוכן

on mouse down in javascript

Featured Replies

פורסם

שלום לכולם אני חדש פה כמו שאתם רואים

בעיקרון אני מפתח java ו-C# אבל כרגע אני מפתח ב-java אפליקציות לאנדרואיד.

אני מפתח עכשיו אפליקציית browser ואני רוצה לשלב בא קוד javascript בשביל זה הגעתי לכאן.

אני לא יודע כל כך javascript יותר נכון אני לא יודע בכלל ובגלל זה הגעתי לכאן אני רוצה ללמוד קצת javascript וכבר התחלתי לקורא כל מני מאמרים.

עכשיו נחזור לבעיה שלי לכרגע.

פיתחתי אפליקצית browser לאנדרואיד וכאשר הדף נטען אני משלב את הקוד הבא

"var isDown = false;" + 
"var timer;" +
"var links = document.getElementsByTagName('a');" +
"for(var i=0; i<links.length; i++) {" +
"var link = links[i];" +
"link.style.background = 'red'; " +
"link.onmousedown=function(){" +

"isDown = false;" +
"timer = setTimeout(function(){" +
"isDown = true;" +
"window.FIND_URLS.urlDown(this.href);" +
"}, 500);" +
"};" +
"link.onmouseup=function(){"
"if(isDown == true){" +
"window.FIND_URLS.urlUp(this.href,0,6);" +
"}" +
"clearTimeout(timer);" +
"};" +
"}";

כמו שאמרתי בעקרון אני כותב ב-java ולכן כל + ו-" האלה.

עכשיו הקוד עובד לי כמעט טוב מה שאני עושה זה לקבל את url שבאתר את זה אני מצליח מצויין. לאחר מכן אני עושה לולאת for על כל url ומוסיף לו onmousedown ו-onmouseup בעצם מה שאני רוצה לעשות זה להוסיף את היכולת שיקרה משהו כאשר המשתמש ילחץ לחיצה ארוכה על לינק מסויים ולכן הוספתי את שני ה-events האלה כאשר onmousedown מתחיל טיימר של חצי שניה וברגע שהטיימר מסתיים אני עובר לקוד java שלי עם המשתמש סיים את הלחיצה לפני שהטיימר סיים את הלחיצה אני מנקה את הטיימר.

מה שלא עובד פה בעצם שמשום מה onmousedown מתבצע לי רק כאשר אני עוזב את הלינק כלומר אני לוחץ הטיימר לא מתחיל לעבוד (בדקתי את זה בכל מני אפשרויות וזה בטוח לא עובד ) אבל כאשר אני עוזב את הלחיצה מתבצע לי גם onmousedown וגם onmouseup ואני עובר לקוד java שלי לאחר שני ה-events האלו

מה שאני לא מבין זה למה ה-onmousedown לא עובד כאשר אני מתחיל את הלחיצה

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

פורסם

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

אם כן, אתה אמור להשתמש בtouch events, לא mouse events.

פורסם
  • מחבר

אוקי תודה רבהעל העזרה המהירה זה באמת עובד ושיניתי את הקוד שיראה כך

    "var timer;" + 
"var links = document.getElementsByTagName('a');" +
"for(var i=0; i<links.length; i++) {" +
"var link = links[i];" +
"link.style.background = 'red'; " +
"link.ontouchstart=function(){" +
"timer = setTimeout(function(){" +
"window.FIND_URLS.longClickUrl(link.href);" +
"}, 500);" +
"};" +
"link.ontouchend=function(){" +
"clearTimeout(timer);" +
"};" +
"}";

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

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים