2011-12-13 25 views
17

Tôi gặp sự cố với contextmenu của JsTree, làm cách nào tôi có thể xóa các phần tử mặc định khỏi contextmenu như Tạo, Xóa, Đổi tên? Tôi muốn cung cấp các phần tử của riêng mình, nhưng các phần tử mặc định vẫn ở ngữ cảnh.jstree xóa các phần tử mặc định khỏi menu ngữ cảnh

"contextmenu" : { 
        "items" : { 
         "IsimVer" : { 
          "label" : "İsim Değiştir", 
          "action" : function (obj) { this.rename(obj); } 
         }, 
         "Ekle" : { 
          "label" : "Ekle", 
          "action" : function (obj) { this.create(obj); } 
         }, 
         "Sil" : { 
          "label" : "Sil", 
          "action" : function (obj) { this.remove(obj); } 
         } 
} 
+0

Sự cố khi thay đổi các phần tử bên trong 'mục' thành giá trị mới là gì? [link] (http://www.jstree.com/documentation/contextmenu) parent one là 'key' và' label' sẽ là nhãn cho menu ngữ cảnh – Pradeep

Trả lời

15

Tôi gặp sự cố này vài ngày trước nhưng chưa quyết định xem đây có phải là lỗi hay tính năng hay không. Nó có thể liên quan đến thứ tự các plugin được tải.

gì làm việc cho tôi được trở về các mục từ một hàm:

"contextmenu" : { 
    "items" : function ($node) { 
     return { 
      "IsimVer" : { 
       "label" : "İsim Değiştir", 
       "action" : function (obj) { this.rename(obj); } 
      }, 
      "Ekle" : { 
       "label" : "Ekle", 
       "action" : function (obj) { this.create(obj); } 
      }, 
      "Sil" : { 
       "label" : "Sil", 
       "action" : function (obj) { this.remove(obj); } 
      } 
     }; 
    } 
} 

Sau khi một số tìm kiếm dường như default behaviour is for your menu items to extend the defaults, vì vậy đây là một tính năng. Rất tiếc, tài liệu hiện không có chi tiết về điểm này.

+2

trông giống nhau nhưng tôi đã tìm ra rằng bạn phải làm điều này:}, \t \t \t \t tạo: false, \t \t \t \t đổi tên: false, \t \t \t \t remove: false, \t \t \t \t ĐCSTQ: false trong mục đối tượng. – LostMohican

+0

Cảm ơn bạn đã làm cho cuộc sống của tôi dễ dàng hơn. – Ashwin

6

Chỉ cần đặt giá trị thành sai trong đối tượng mục. Ví dụ, để vô hiệu hóa chỉnh sửa (cắt, sao chép, dán) đơn thử điều này:

contextmenu : { 
    items : { 
     "ccp" : false 
    } 
} 
3


Đặt ĐCSTQ, tạo, đổi tên, loại bỏ để sai như thế này:

plugins : ["themes","json_data","ui","crrm", "hotkeys", "types", "contextmenu"], 
contextmenu : { 
    items : { 
     "IsimVer" : { 
      "label" : "IsimVer", 
      "action" : function (obj) { alert("IsimVer"); } 
     }, 
     "Ekle" : { 
      "label" : "Ekle", 
      "action" : function (obj) { alert("Ekle"); } 
     }, 
     "Sil" : { 
      "label" : "Sil", 
      "action" : function (obj) { alert("tiga"); } 
     }, 
     "ccp" : false, 
     "create" : false, 
     "rename" : false, 
     "remove" : false 
    } 
} 
12

Nếu bạn muốn sửa đổi nhãn của các mục hiện có hoặc loại bỏ một số, một giải pháp đơn giản như dưới đây sẽ hoạt động

"contextmenu": { 
    "items": function(node) { 
      var defaultItems = $.jstree.defaults.contextmenu.items(); 
      defaultItems.create.label = "Ekle"; 
      delete defaultItems.ccp; 
      return defaultItems; 
     } 
    } 

Điều này sẽ đặt nhãn "Tạo" thành mục "Ekle" và xóa hình dán cắt từ mục mặc định.

+0

Đây là câu trả lời hay nhất tôi đã thấy. –

+0

đây là người duy nhất làm việc cho tôi bằng cách sử dụng 3.x của jstree, cảm ơn – Gurnard

+0

Tương tự ở đây! Cảm ơn! –

Các vấn đề liên quan