Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/365.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 jQuery中的上下文菜单项_Javascript_Jquery_Contextmenu_Jstree - Fatal编程技术网

Javascript jQuery中的上下文菜单项

Javascript jQuery中的上下文菜单项,javascript,jquery,contextmenu,jstree,Javascript,Jquery,Contextmenu,Jstree,我想通过jQuery显示条件上下文菜单项 例如: 我的帐户里有汽车。我想展示关于条件的选项 如果车是我自己的,那么所有菜单项都应该对我可见。若和我共享,那个么只有视图菜单应该对我可见 if (type == 'vehicle') { (function () { var vehicle_id = node.data.vehicle_id; var vehicle_status = ''; $.ajax({ url: baseUrl + '/ch

我想通过jQuery显示条件上下文菜单项

例如:

我的帐户里有汽车。我想展示关于条件的选项

如果车是我自己的,那么所有菜单项都应该对我可见。若和我共享,那个么只有视图菜单应该对我可见

if (type == 'vehicle') {
   (function () {
     var vehicle_id = node.data.vehicle_id;
     var vehicle_status = '';
     $.ajax({
        url: baseUrl + '/check-vehicle-status/'+vehicle_id,
                        success: function(data) {
                            console.log(data);
                            if(data == 'shared'){
                                //what should I write here? to show only View option 
                            }
                        }
                    });

                    items = {
                        "View": {
                            "label": "View Vehicle", 
                            "action": function action() {
                                self.viewVehicle(vehicle_id);
                            }
                        },
                        "modify": {
                            "label": "Edit Vehicle", 
                            "action": function action() {
                                self.editVehicle(vehicle_id);
                            }
                        },
                        "delete": {
                            "label": "Delete Vehicle",
                            "action": function action() {
                                dialogHandler.showDeleteVehicle(function () {
                                    self.removeVehicle(vehicle_id);
                                });
                            }
                        },

如果树节点的node.data将有一个值,则必须在如下上下文菜单方法中检查数据参数

检查演示-


请分享你已经拥有的我正在发送带有汽车ID的ajax呼叫,它给我的汽车是我自己的或与我共享的。所以我想添加这个条件,如果汽车是与我共享显示只查看操作。其他明智的显示所有选项,如编辑、删除等。嘿,感谢尼古拉的回复。但是你能帮我把ajax响应变成全局的,这样我就可以在itemsSure中使用它了,但是我恐怕我没有这个想法。在显示上下文菜单之前,在右键单击节点时是否要进行ajax调用?是。根据ajax调用结果,应该显示菜单子项。
...
contextmenu: {
  items: function (node) { 

      // remove default context menu items
      var tmp = $.jstree.defaults.contextmenu.items();
      delete tmp.rename;
      delete tmp.remove;
      delete tmp.ccp;
      delete tmp.create;

      for (menuItem in items) {
         if( menuItem === 'View' || node.data !== 'shared') { 
              tmp[ menuItem ] = {
                 id: menuItem,
                 label: items[menuItem].label,
                 action: items[menuItem].action
              }
          }
      }

      return tmp;
  }
},