Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/368.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何禁用单个菜单项?_Javascript_Html_Drop Down Menu_Menu_Webix - Fatal编程技术网

Javascript 如何禁用单个菜单项?

Javascript 如何禁用单个菜单项?,javascript,html,drop-down-menu,menu,webix,Javascript,Html,Drop Down Menu,Menu,Webix,显然我还有一个Webix问题 我正在尝试禁用单个菜单项,但子菜单的onItemClick操作仍然有效。这是我的密码: webix.ui({ view:"menu", id:'menu', data:[ { id:'root', value:'Available actions', config:{ on: { onItemClick: function(id){ webix.messag

显然我还有一个Webix问题

我正在尝试禁用单个菜单项,但子菜单的
onItemClick
操作仍然有效。这是我的密码:

webix.ui({
  view:"menu", 
  id:'menu', 
  data:[
    { 
      id:'root',
      value:'Available actions',    
      config:{ 
        on: { 
          onItemClick: function(id){ webix.message(id) }
        }
      },
      submenu:[
       { id:'1', value:'Open...' }
     ]
    }
  ]
});

$$('menu').disableItem('1');
全样本:


我哪里错了,有没有办法禁用菜单项?

onItemClick
更改为
onMenuItemClick

例如:

发件人:

这两种方法都可以在菜单内部事件中使用,例如,单击事件: onMenuItemClick-单击所有菜单项时激发,而不考虑层次结构级别。忽略禁用的项目; onItemClick—单击同一层次结构级别的任何项时触发的标准事件。也为禁用的项目激发


onItemClick
更改为
onMenuItemClick

例如:

发件人:

这两种方法都可以在菜单内部事件中使用,例如,单击事件: onMenuItemClick-单击所有菜单项时激发,而不考虑层次结构级别。忽略禁用的项目; onItemClick—单击同一层次结构级别的任何项时触发的标准事件。也为禁用的项目激发

日志在这里

函数(t){this.getMenu(t).addCss(t,“webix_已禁用”);}

日志在这里

函数(t){if(this.data.pull[t])返回此;for(this.data.pull中的变量e){var i=this.getItem(e);if(i.submenu){var s=this.br(i).getMenu(t);if(s)返回s}}

您可以通过单击筛选id=='1'

onItemClick:function(id){if(id!='1'){//code here}

或者更改菜单项单击

遵循#1答案

日志在这里

函数(t){this.getMenu(t).addCss(t,“webix_已禁用”);}

日志在这里

函数(t){if(this.data.pull[t])返回此;for(this.data.pull中的变量e){var i=this.getItem(e);if(i.submenu){var s=this.br(i).getMenu(t);if(s)返回s}}

您可以通过单击筛选id=='1'

onItemClick:function(id){if(id!='1'){//code here}

或者更改菜单项单击


按照#1回答

谢谢!一个重要的更正-似乎应该为菜单定义
onMenuItemClick
,而不是为其项目定义:谢谢!一个重要的更正-似乎应该为菜单定义
onMenuItemClick
,而不是为其项定义:>仅为id=1添加禁用类谢谢您的解释!AFAICS
onMenuItemClick
根据需要处理它>仅为id=1添加禁用类谢谢您的解释!AFAICS
onMenuItemClick
根据需要处理它
console.log($$('menu').disableItem)
console.log($$('menu').getMenu)
$$('menu').disableItem('1');   // only add disabled class for id=1