2017-03-09 33 views
0

我想通過jQuery顯示條件contextMenu項目。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); 
           }); 
          } 
         }, 
+0

請分享你已經擁有 –

+0

我送與車輛ID,給了我的車是我自己或與我分享AJAX調用。所以我想添加這個條件,如果汽車與我共享只顯示查看oprion。其他明智顯示所有選項喜歡編輯,刪除等。 – MongoUser

回答

1

您必須檢查data PARAM在上下文菜單的方法如下面(前提是樹節點的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; 
    } 
}, 
+0

嘿感謝尼古拉你的迴應。但是,你能幫助做出全球性的Ajax響應,以便我可以在項目 – MongoUser

+0

中使用它當然,但我擔心我沒有得到這個想法。當節點是右鍵單擊並顯示上下文菜單之前,是否要調用ajax? –

+0

是的。根據ajax調用結果,應顯示菜單子項目。 – MongoUser