2012-10-26 28 views
5

मैं एक मूल ब्लॉगिंग प्लेटफ़ॉर्म लिखने की कोशिश कर रहा हूं, और मैं उपयोगकर्ताओं को अपने क्लिपबोर्ड पर पूर्व ब्लॉक के भीतर कोड कॉपी करने की क्षमता प्रदान करना चाहता हूं।मैं एक नए डाले गए तत्व के लिए एक ZeroClipboard क्लिप गोंद() कैसे कर सकता हूँ?

मैं इसे प्राप्त करने के लिए ZeroClipboard का उपयोग कर रहा हूं। एक बार जब दस्तावेज़, मैं पृष्ठ पर प्रत्येक pre के माध्यम से लूप, यह करने के लिए एक क्लिपबोर्ड आइटम जोड़ने के लिए तैयार है इस प्रकार है:

$(document).ready(function() { 

     ZeroClipboard.setMoviePath('ZeroClipboard/ZeroClipboard.swf'); 
     var preNum = 1 

     $('pre').each(function() { 
      // Get a unique id for the element I will be inserting 
      var id = 'copy-btn-' + preNum++ 
      // Capture the text to be copied to the clipboard 
      var text = $(this).text() 
      // Insert the element, just before this 
      $('<div class="copy-btn" id="' + id + '-cont"><i class="icon-file icon-white" id="' + id + '"></i></div>').insertBefore(this) 
      // Capture the newly inserted element 
      var elem = $(this).prev() 

      // Create the clip, and glue it to the element 
      var clip = new ZeroClipboard.Client(); 
      clip.setText(text) 
      clip.glue(elem) 
     }) 
    }); 

जब मैं यह करने के लिए प्रयास करते हैं, जावास्क्रिप्ट console रिपोर्ट: Uncaught TypeError: Cannot read property 'zIndex' of undefined

मेरे वर्तमान समस्या की समझ यह है कि जब मैं क्लिप को चिपकाने की कोशिश करता हूं तो सम्मिलित तत्व डोम में अभी तक उपलब्ध नहीं है, यही कारण है कि कोई ग्लूइंग नहीं हो रहा है।

कोई भी जानता है कि मैं इसे कैसे पूरा कर सकता हूं?

उत्तर

2

Gluing instructions से:

आप में एक DOM तत्व आईडी पारित कर सकते हैं (जैसा कि ऊपर दिखाया गया है), या वास्तविक डोम तत्व वस्तु ही के लिए एक संदर्भ।

आपका कोड काम नहीं करता है क्योंकि आप इसे एक jQuery ऑब्जेक्ट पास कर रहे हैं।

clip.glue(id + '-cont') 

या एक वास्तविक DOM एलीमेंट संदर्भ:

आप आईडी पारित कर सकते हैं

clip.glue(elem[0]) 

ऊपर के उदाहरण .get() jQuery वस्तु विधि के लिए आशुलिपि का उपयोग करता है।

+1

ग्रेट कॉल। सहायता के लिए धन्यवाद। – finiteloop