У меня есть DataTable в YUI. Я пытаюсь заставить таблицу игнорировать все ключевые события. Я пробовал эти методы:
YAHOO.util.Event.addListener(singleSelectDataTable, "keydown", function(oEvent) {
YAHOO.util.Event.stopPropagation(oEvent);
});
OR
YAHOO.util.Event.preventDefault(singleSelectDataTable.tableKeyEvent);
OR
singleSelectDataTable.subscribe('tableKeyEvent', function(oArgs) {
YAHOO.util.Event.preventDefault(oArgs.event);
});
Я рассмотрел несколько примеров YUI для перехвата событий щелчка, но они не аналогичны этому конкретному сценарию. Я создал отдельный тестовый файл HTML, если это поможет: http://pastebin.com/khfR4Stk. Основная проблема заключается в том, что мы не хотим поддерживать клавиши со стрелками вверх или со стрелками вниз в наших таблицах; это таблица прокрутки, и чтобы она работала должным образом, нам нужно настроить большой палец прокрутки, как только выделение пройдет мимо «показанного окна».
Единственное другое решение, о котором я мог подумать, - это подписаться на tableKeyEvent, а затем, если нажатие клавиши является стрелкой вверх, затем отменить выбор новой выбранной строки, выбрать предыдущую строку и сделать соответствующий аналог для стрелки вниз отмена того, что только что сделал нажатием клавиши). Это не похоже на правильное решение ...