2012-08-14 10 views
5

मैं एक एसवीजी ग्राफिक में रोडनी रेम से jQuery contextMenu का उपयोग करता हूं। यह मूल उपयोग के लिए ठीक काम करता है।क्लिक किए गए तत्व की आईडी प्राप्त करें जो jQuery संदर्भ का उपयोग कर संदर्भ मेनू खोला गया हैमेनू प्लगइन

लेकिन मुझे एसवीजी-एलिमेंट की आईडी (या कोई अन्य संपत्ति) प्राप्त करने की आवश्यकता है जिसने संदर्भ मेनू को डायनामिक आइटम नाम प्राप्त करने के लिए संदर्भ मेनू की आइटम सूची में इसका उपयोग करने के लिए ट्रिगर किया।

मैं Simple Context Menu डेमो के साथ काम करता हूं और अब इन स्थिर मेनू आइटम्स को गतिशील लोगों के साथ बदलना चाहता हूं जो एसवीजी तत्व की आईडी के आधार पर क्लिक किए गए थे।

उत्तर

10

यह आपको मदद मिल सकती है:

$(function(){ 
    $.contextMenu({ 
     selector: 'my-selector-here', 
     build: function($trigger, e) { 
      // this callback is executed every time the menu is to be shown 
      // its results are destroyed every time the menu is hidden 
      // e is the original contextmenu event, containing e.pageX and e.pageY (amongst other data) 
      // $trigger is the element that was rightclicked on - get its id here 
      var id = $trigger.getTheIDSomehow() 
      // build the menu items 
      if (id == 1) { 
       menuItems = {...} 
      else if (id == 2) 
       menuItems = {...} 
      return { 
       callback: function(key, options) { 
        // this is called when one of the contextmenu options is clicked 
       }, 
       items: menuItems 
      }; 
     } 
    }); 
}); 
+0

कि संकेत के लिए धन्यवाद के रूप में किया जाता है की जाँच करने के लिए है। मैं जानता था कि डेमो। मेरी समस्या सिर्फ आईडी प्राप्त करने के लिए है। तो, मैं ट्रिगरिंग तत्व की आईडी कैसे प्राप्त कर सकता हूं? (इसलिए, मैं आपके "getTheIDSomehow" के लिए सही फ़ंक्शन खोजता हूं। – cbl

+0

उस संकेत के लिए धन्यवाद। मुझे पता था कि डेमो, लेकिन समाधान नहीं देखा। मुझे अंत में मिला। – cbl

4

जब मैं स्थिर मेनू का उपयोग करें, मैं इस तरह आईडी मिलती है::

... 
callback: function (key, options) { 
    id = options.$trigger.attr("id"); 
    ... 
}, 
... 

शायद $ trigger.attr http://medialize.github.com/jQuery-contextMenu/demo/dynamic-create.html
यहां कुछ नमूना कोड है ("आईडी") आपके लिए काम कर सकता है।

+0

इसके अलावा आपको तत्व को आईडी देना चाहिए ... – Joe

6

आप बस जो तत्व पर राइट क्लिक ::

$.contextMenu({ 
      selector: 'tr', 
      callback: function (key, options) { 
       var m = "clicked: " + key; 
       if (key == "Clone") 
       { 
        Your_Function($(this).attr('id')); 
       } 

      }, 
      items: { 
       "Clone": { name: "Clone" }, 
       } 
      }); 
संबंधित मुद्दे