2013-06-02 6 views
10

मैग्नीफिश पॉपअप में वर्तमान तत्व प्राप्त करें, मैं क्लिक किए गए लिंक में एक विशेषता प्राप्त करना चाहता हूं और इसे कॉलबैक फ़ंक्शन (कॉलबैक का उपयोग करके: ओपन) में डीओएम में कुछ बदलाव करने के लिए उपयोग करना चाहता हूं।मैग्निफिश पॉपअप: कॉलबैक

मैं यह कैसे कर सकता हूं? उदाहरण के लिए, नीचे दिए गए कोड में, इसे कंसोल पर 'यह काम करता है' वापस करना चाहिए। इसके बजाय यह 'काम नहीं करता' प्रिंट करता है। कृपया सहायता कीजिए!!

<a href="#test-popup" class="open-popup-link" myatt="hello">Show inline popup</a> 

<script src="jquery.magnetic.custom.js"></script> 

<script> 

    $(document).ready(function() { 
     $('.open-popup-link').magnificPopup({ 
     type:'inline', 
     midClick: true, 
     callbacks: { 
      open: function() { 

      if ($(this).attr('myatt')=="hello") 
      { 
       // do something 
       console.log("it works"); 
      } 
      else 
      { 
       console.log("doesnt work"); 
      } 

      }, 
      close: function() { 

      } 
     } 

     }); 
    }); 

</script> 

<div id="test-popup" class="white-popup mfp-hide"> 
    Popup content 
</div> 

उत्तर

0
// "item.el" is a target DOM element (if present) 
// "item.src" is a source that you may modify 
open: function(item) {} 

और डेटा-गुण, उदाहरण डेटा-Myatt करने के लिए उपयोग - कि मिल:

$(this).data('myatt') 
6

सबसे पहले, मैं डेटा विशेषता (डेटा-कस्टम उपयोग करने के लिए आप को सलाह देते हैं = "foo ") या एक ज्ञात विशेषता।

HTML:

<a href="photo.jpg" class="popup" data-custom="dsaad">Do it!</a> 
    <a href="photo.png" class="popup" data-custom="mycustomdata">Do it!</a> 

jQuery:

$('.popup').magnificPopup({ 
    type : 'image', 
    callbacks : { 
    open : function(){ 
     var mp = $.magnificPopup.instance, 
      t = $(mp.currItem.el[0]); 

     console.log(t.data('custom')); 
    } 
    } 
}); 

एक बेहतर तरीका मौजूद है अगर मैं नहीं जानता। असल में आप सार्वजनिक दस्तावेजों के बारे में अपने दस्तावेज पढ़ सकते हैं और आप वहां देखेंगे। मैं ऊपर कोड का परीक्षण किया और सब कुछ ठीक :)

+2

ऊपर ध्यान दें करने के लिए केवल Magnific पॉपअप के पुराने संस्करणों के लिए काम करता है। यदि आप पिछले संस्करण 0.9.8 का उपयोग कर रहे हैं तो कृपया नीचे @ कोनपाका उत्तर देखें। – Styledev

12

Magnific पॉपअप v0.9.8 के लिए काम करता है

var magnificPopup = $.magnificPopup.instance, 
       cur = magnificPopup.st.el; 
console.log(cur.attr('myatt')); 
0

क्लिक किया तत्व का उपयोग कॉलबैक से पहुंचा जा सकता:

this.st.el 

कॉलबैक के अंदर, "यह" $ .magnificPopup.instance को संदर्भित करता है।

सार्वजनिक संपत्तियों के तहत

:

"magnificPopup.st.el // लक्ष्य क्लिक किया तत्व यह है कि पॉपअप (काम करता है पॉपअप DOM एलीमेंट से आरंभ नहीं हो जाता) खोला"

0

इसके अलावा, open: function(item) {} अंदर, this.content हो सकता है मदद .. यह दिखाए जा रहे सामग्री का div वापस करेगा। change: function() {} के साथ भी उपयोगी। उम्मीद है कि यह मेरे जैसे किसी की मदद करता है।