You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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,而不是第一个。

  1. 修正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");
    }
    
  2. 验证焦点切换逻辑
    替换原代码中SN.focus(#${first_page_focused_element})这一行,确认传入的是首个item_row的ID。这样按下右键时,焦点就会正确定位到第一个item_row,而不是跳过它。

内容的提问来源于stack exchange,提问作者Atul Chaubey

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 11:22:34