2017-03-09 9 views
0

jQuery를 통해 조건부 컨텍스트 메뉴 항목을 표시하려고합니다.ContextMenu 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); 
           }); 
          } 
         }, 
+0

이미 난 내 자신 또는 저와 공유 나에게 차를 제공 자동차 ID와 아약스 호출을 보내고 –

+0

이 무엇을 공유하십시오. soo 자동차가 나와 공유하는 경우이 조건을 추가하려면 View oprion 만 표시하십시오. 다른 모든 옵션은 EDIT, DELETE 등을 좋아합니다. – MongoUser

답변

1

하면 아래 (트리 노드의 node.data는 값을 가질 것이다한다)와 같은 컨텍스트 메뉴 방식에서 data PARAM을 확인해야한다.

확인 데모 - 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

안녕하세요, Nikolay 님의 회신에 감사드립니다. 하지만 아약스 응답을 글로벌하게 만들 수 있도록 도와 주시겠습니까? – MongoUser

+0

그래,하지만 그 아이디어를 얻지 못했을 겁니다. 노드가 마우스 오른쪽 버튼을 클릭하고 컨텍스트 메뉴를 표시하기 전에 아약스 호출을하고 싶습니까? –

+0

예. ajax 호출 결과에 따라 Menu 하위 항목이 표시되어야합니다. – MongoUser