إذا فهمت السؤال بشكل صحيح ، فإن المشكلة هي أن تكون على Firefox ، onchange
لا يتم تنفيذ المعالج عند الضغط على زر الماوس لأسفل عندما يكون المؤشر على زر التمرير ونقل الماوس. يتم تنفيذه فقط بعد إطلاق زر الماوس بعد هذه الخطوة.
يبدو أن هذا هو السلوك الصحيح (على الرغم من أن بعض المتصفحات الأخرى لا تمتثل) ، لأن HTML5 Cr يقول عن change
حدث: "إذا لم يكن العنصر لا يحتوي على سلوك تنشيط محدد ولكنه يستخدم واجهة مستخدم تتضمن إجراءً لالتزام صريح ، فعندئذٍ يرتكب المستخدم تغييرًا في قيمة العنصر أو قائمة الملفات المحددة ، يجب على وكيل المستخدم قائمة انتظار المهمة اطرق حدثًا بسيطًا يدعى الفقاعات التي تسمى التغيير في عنصر الإدخال. "
هذا صياغة معقدة بعض الشيء ، ولكن يتبعها مثال توضيح: "مثال ثالث لواجهة المستخدم مع إجراء الالتزام سيكون ضوابط النطاق التي تستخدم شريط التمرير. بينما يقوم المستخدم بسحب مقبض التحكم ، ستطلق أحداث الإدخال كلما تغيرت الموضع ، في حين أن حدث التغيير لن يطلق النار إلا عندما يترك المستخدم المقبض ، والالتزام بقيمة محددة. "
الاستنتاج هو أنه في هذه الحالة ، يجب عليك استخدام oninput
ميزة بدلا من onchange
. في التمرين، onmousemove
يعمل أيضًا ، لكن oninput
من الأفضل ، لأنه من المتوقع أن يعمل مع أساليب الإدخال التي لا تستخدم الماوس (مهما كانت ، على سبيل المثال التحكم عن طريق الصوت).