我想通过jQuery显示条件contextMenu项。

例如 :

我的帐户中有汽车。我想展示条件选项。

如果汽车是我自己的,那么所有菜单项都应该对我可见。如果与我共享,则只有“查看菜单”对我可见。

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);
                                });
                            }
                        },

最佳答案

您将必须使用如下所示的上下文菜单方法检查data参数(前提是树节点的node.data将具有值)。

查看演示-Fiddle Demo

...
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;
  }
},

关于javascript - jQuery中的ContextMenu项,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42691989/

10-09 18:15