تعيين التركيز باستخدام الأسهم الأيمن والأيسر (HTML + JS)

StackOverflow https://stackoverflow.com/questions/1210694

سؤال

هل هناك أي لجعل السهم الأيسر تتصرف مثل زر التبويب (تعيين التركيز إلى العنصر التالي القابل للتركيز) والسهم الأيمن تتصرف مثل (تركيز مجموعة إلى العنصر القابل للتركيز السابق) تحول + علامة التبويب؟

ولقد حصلت على هذا الحد:

$().keypress(function(e) {
    if (e.keyCode == 37) {
        alert('I want to do a shift-tab');
    }
    else if (e.keyCode == 39) {
        alert('I want to do a tab');
    }
});

ولكن جوجل لا يجري هذا مفيدة حتى ظننت أنني كنت وضعت وظيفة سريعة هنا بينما كنت جوجل بعض أكثر.

وشكرا!

وأوه، وانها لمجرد FF3.0 لذلك أنا لا داعي للقلق بشأن المضايقات متصفح آخر.

هل كانت مفيدة؟

المحلول

وماذا لديك لذلك يبدو بعيدا غرامة.

هل يمكن أن تبقى قائمة من البنود "focusable من" ومجرد تكرار خلال القائمة حفظ مؤشر الحالي واحد:

// or $('input')..depends what you want to focus on
var nodes = $('.focusable'), idx = -1;
$().keypress( function(e) {
   if (e.keyCode === 37) {
     nodes.get(++idx).focus();
    }
    else if (e.keyCode === 39) {
       nodes.get(--idx).focus();
    }
 });

وهذا هو مجرد مخطط تقريبي بالرغم من ذلك. كنت بحاجة للتأكد من idx قبل القيام بشيء للتأكد من أنك لا تنزلق الماضي بداية أو نهاية للعناصر مجموعة focusable من. سوف تحتاج أيضا إلى توخي الحذر حول استدعاء هذا عندما يكون المستخدم من داخل النص.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top