الشحن جافا سكريبت السمة الأحداث المختلفة معالج/نوع
-
07-07-2019 - |
سؤال
أنا حاليا أحاول إنشاء صفحة ويب على الكمبيوتر شاشة تعمل باللمس, و قد لاحظت أن (مع أصابع الدهون) التي onclick الأحداث من الصعب حقا أن تؤدي ، حسب مساحة إصبعي عموما أسباب المؤشر للتحرك بينما أنا "فوق".
الحل أريد أن استخدام إعادة توجيه onmousedown الأحداث onclick.كيف يمكنني جعل هذا العمل ؟
أفضل إجابة سيكون على غرار:
<input type="radio" onmousedown="this.onclick()"/>
(ولكن بالطبع في حالة عمل)
تحرير:بلدي محددة مثال على أزرار الراديو - عندما يتم التحقق من الآخرين دون رادع;أنا لا أريد تكرار هذا السلوك في حدث مخصص عندما يكون المستعرض يعطيها لي مجانا.
ملاحظة:بعد تحريرها ، وحصل على ردود الفعل ، أعتقد أنه ربما قد تكون في الطريق الخطأ...ربما انها ليست "انقر فوق" الدالة على زر الاختيار هذا في الواقع لا اختيار:اقتراحات جديدة ...مرحبا بكم
المحلول
حسنا, بعد تعديلاتك يصبح أكثر وضوحا - ما تريد القيام به هو محاكاة المستخدم النقر على السيطرة عندما mousedown
الحدث هو النار.
اثنين من الخيارات:
- يمكنك اطلاق النار دوم الحدث هذا البرنامج التعليمي على دوم الأحداث يناقش هذا (انظر يدويا اطلاق الأحداث القسم); إطلاق جافا سكريبت الأحداث يغطي الأرض مماثلة.
- مجموعة
onmouseout="this.checked = true;"
, أيالنقر على زر الراديو "الشيكات"/تحديد زر الراديو.
نصائح أخرى
لماذا لا مجرد التعامل مع الحدث mousedown
؟
وأنا أعلم أنك لم أذكر أنه في السؤال، ولكن إذا كنت يحدث ليكون باستخدام مسج، سيكون حقا حقا من السهل:
$().live('mousedown', function() { this.click(); });
وربما هذا يصلح لك
document.getElementById("yourinput").onmousedown = function() {
this.click();
}
وبالإضافة إلى ذلك هل يمكن أن طريقتك أزرار الإدخال / المجالات لتكون أكبر قليلا، لإمكانية الوصول بشكل أفضل عبر المؤشر.
ومن الأفضل أن يكون لديك وظيفة واحدة للتعامل مع كلا الحدثين، منها مثلا.
var function = foo(e) {
...
};
<input onclick="foo();" onmousedown="foo();"/>
والأفضل من ذلك استخدام غير مزعجة جافا سكريبت، على سبيل المثال (إذا كنت تستخدم YUI):
<input id="input-el"/>
var function = foo(e) {
...
};
var Event = YAHOO.util.Event;
Event.on('input-el', 'click', foo);
Event.on('input-el', 'mousedown', foo);