2011-10-13 25 views
5

मेरे asp.net mvc 3 एप्लिकेशन के लिए मैं this plugin का उपयोग कर रहा हूं। लेकिन मैं एक समस्या है, मैं सक्षम या कुछ मेनू आइटम अक्षम करने के लिए, के बाद मैं जैसे मेनू बनाया है, चाहते हैं:jquery संदर्भ मेनू अक्षम मेनू आइटम

<script type="text/javascript"> 
    $(function(){ 
     /************************************************** 
     * Menu 1 
     **************************************************/ 
     $.contextMenu({selector: '.context-menu-one', items: { 
      edit: {name: "Edit", icon: "edit", callback: $.noop, accesskey:"e d i t"}, 
      cut: {name: "Cut", icon: "cut", callback: $.noop, accesskey:"c u t"}, 
      copy: {name: "Copy", icon: "copy", callback: $.noop, accesskey:"c o p y"}, 
      paste: {name: "Paste", icon: "paste", callback: $.noop, accesskey:"p a s t e"}, 
      "delete": {name: "Delete", icon: "delete", callback: $.noop, accesskey:"d e l t"}, 
      sep1: "---------", 
      quit: {name: "Quit", icon: "quit", callback: $.noop, accesskey:"q u i t"} 
     }}); 

     //not working 
     $('.context-menu-one').contextMenu('commands[0].disabled','true'); 
     }); 

    </script> 

काम नहीं, किसी भी विचार?

उत्तर

12

प्लगइन के documentation के अनुसार, आप यह निर्धारित करने के लिए एक मेनू निर्दिष्ट कर सकते हैं कि मेनू आइटम अक्षम है या नहीं।

तो, आप उस फ़ंक्शन को स्थानीय चर पर बंद कर सकते हैं, और आइटम्स को सक्षम या अक्षम करने के लिए उस चर को अपडेट कर सकते हैं। कुछ ऐसा:

$(function() { 
    var itemsDisabled = {}; // Enable everything initially. 
    $.contextMenu({ 
     selector: ".context-menu-one", 
     items: { 
      // [...] 
      cut: { 
       name: "Cut", 
       icon: "cut", 
       callback: $.noop, 
       accesskey: "c u t", 
       disabled: function(key, opt) { 
        return !!itemsDisabled[key]; 
       } 
      } 
      // [...] 
     } 
    }); 

    // Disable the "Cut" menu item. 
    itemsDisabled["cut"] = true; 
}); 
+1

उत्कृष्ट, यह काम करता है! – iknowitwasyoufredo

+3

बीटीडब्ल्यू, मुझे पता चला है कि किसी आइटम को छिपाने के लिए, और इसे अक्षम न करें, आप "अक्षम" के बजाय "दृश्यमान" विकल्प का उपयोग कर सकते हैं। परिभाषा एक ही तरीके से की जाती है, इस तथ्य को छोड़कर कि "दृश्यमान" के तहत कार्य दो बार चलता है और पहले भाग में, पैरामीटर वापस नहीं आते हैं। तो आपको पहले जांचना होगा कि "$ ट्रिगर" कुछ भी लौटाता है और फिर इस फ़ंक्शन में आवश्यक कोड चलाता है। – TheCuBeMan

+0

@TheCuBeMan अगर यह दस्तावेज में उल्लेख किया गया तो यह अच्छा हो सकता है! https://swisnl.github.io/jQuery-contextMenu/docs/items.html#visible –

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