2011-12-13 19 views
17

मुझे जेएसटी के संदर्भमेनू के साथ कोई समस्या है, मैं संदर्भमेनू से डिफ़ॉल्ट तत्व कैसे हटा सकता हूं जैसे बनाना, हटाएं, नाम बदलें? मैं अपने स्वयं के तत्व प्रदान करना चाहता हूं, लेकिन डिफ़ॉल्ट तत्व अभी भी contextmenu पर हैं।jstree संदर्भ मेनू से डिफ़ॉल्ट तत्वों को हटाएं

"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

नए आइटमों के लिए 'आइटम्स 'के अंदर तत्वों को बदलने में समस्या क्या है? [लिंक] (http://www.jstree.com/documentation/contextmenu) अभिभावक एक 'कुंजी' है और 'लेबल' संदर्भ मेनू के लिए लेबल होगा – Pradeep

उत्तर

15

मेरे पास कुछ दिन पहले यह समस्या थी लेकिन अभी तक यह तय नहीं हुआ है कि यह एक बग या सुविधा है या नहीं। यह उस क्रम से संबंधित हो सकता है जिसमें प्लगइन लोड होते हैं।

मुझे एक समारोह से आइटम लौट रहा था के लिए क्या काम किया:

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

कुछ के बाद यह खोज लगता है कि default behaviour is for your menu items to extend the defaults, तो यह एक विशेषता है। दुर्भाग्यवश दस्तावेज में वर्तमान में इस बिंदु पर विस्तार की कमी है।

+2

समान दिखता है लेकिन मुझे लगा कि आपको यह करना है:}, \t \t \t \t बनाएँ: झूठे, \t \t \t \t नाम बदलने: झूठे, \t \t \t \t निकालें: झूठे, \t \t \t \t सीसीपी: झूठी में आइटम आपत्ति है। – LostMohican

+0

धन्यवाद आपने अपना जीवन आसान बना दिया है। – Ashwin

6

आइटम ऑब्जेक्ट में केवल गलत के लिए मूल्य निर्धारित करें। उदाहरण के लिए, संपादित करें निष्क्रिय करने के लिए (कट, कॉपी, पेस्ट) मेनू इस प्रयास करें:

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


सेट सीसीपी, बनाने के लिए, नाम बदलने, को गलत इस तरह निकालें:

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

यदि आप मौजूदा वस्तुओं के लेबल संशोधित करना चाहते हैं या कुछ को हटा देना चाहते हैं, तो नीचे एक सरल समाधान काम करेगा

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

यह आइटम को "एकल" के रूप में "बनाएं" सेट करेगा और डिफ़ॉल्ट आइटम से कट कॉपी पेस्ट हटा देगा।

+0

यह मैंने देखा है सबसे अच्छा जवाब है। –

+0

यह एकमात्र ऐसा था जो जेस्ट्री के 3.x का उपयोग करके मेरे लिए काम करता था, धन्यवाद – Gurnard

+0

वही है! धन्यवाद! –

संबंधित मुद्दे