Tizen中菜单按右键焦点跳过首个item_row问题的解决咨询
解决菜单栏右键(ArrowRight)焦点跳过首个item_row的问题
问题描述
当焦点处于菜单栏时按下右键(ArrowRight),焦点会跳过首个item_row:例如从菜单栏直接跳至row_item_1_1,跳过row_item_1_0;从菜单跳至item_row_2_1,跳过item_row_2_0,依此类推。
相关代码
case "ArrowRight": // Right button if ( $(".sidebar-container").hasClass("toggle_menu") && $("[id^=menu_]").is(":focus") ) { if ($(".profile_container").hasClass("active")) { var $logoutButton = $("#logout-button"); if ($logoutButton.length) { console.log("element found with id #logout-button"); $logoutButton.focus(); } } else SN.focus(`#${first_page_focused_element}`); } e.preventDefault(); break;
解决方案
问题核心是first_page_focused_element变量指向了错误的元素——它现在取的是每个菜单对应的第二个item_row的ID,而不是第一个。
修正
first_page_focused_element的赋值逻辑
确保它获取的是当前激活菜单下的首个item_row的ID。比如可以通过当前聚焦菜单的ID,匹配对应前缀的item_row,再选取第一个:// 示例:获取当前聚焦菜单对应的首个item_row ID const focusedMenu = $("[id^=menu_]:focus"); if (focusedMenu.length) { const menuPrefix = focusedMenu.attr("id").replace("menu_", "row_item_"); first_page_focused_element = $(`[id^=${menuPrefix}]`).eq(0).attr("id"); }验证焦点切换逻辑
替换原代码中SN.focus(#${first_page_focused_element})这一行,确认传入的是首个item_row的ID。这样按下右键时,焦点就会正确定位到第一个item_row,而不是跳过它。
内容的提问来源于stack exchange,提问作者Atul Chaubey
相关产品推荐
相关产品推荐

