2017-03-09 15 views
0

jQuery経由で条件付きコンテキストメニュー項目を表示したい。jQueryのContextMenu項目

例:

私のアカウントには車があります。条件についてのオプションを表示したかったのです。

車が自分のものなら、すべてのメニュー項目が私に見えるはずです。そして、それが私と共有されている場合は、Viewメニューだけが私に見えるようにする必要があります。

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とAJAX呼び出しを送信しています –

+0

を持っているものを共有してください。 soo車が私と共有されている場合にのみ、この条件を追加したいと思う。他の賢明なすべてのオプションが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

お返事ありがとうございました。しかし、あなたはアヤックスレスポンスをグローバルにしてアイテムに使うことができるように助けることができますか – MongoUser

+0

確かに、私はそのアイディアを得られなかったのでしょうか?ノードが右クリックされ、コンテキストメニューを表示する前にajaxコールを行いたいですか? –

+0

はい。 ajaxの呼び出し結果によると、Menuサブアイテムが表示されるはずです。 – MongoUser

関連する問題