Magnific ўсплывальнае акно: Атрымаць бягучы элемент зваротнага выкліку

У Magnific ўсплываў, я хачу, каб атрымаць атрыбут ў спасылцы, які пстрыкнуў і выкарыстоўваць яго ў функцыі зваротнага выкліку (з выкарыстаннем зваротных выклікаў: адкрыты), каб зрабіць некаторыя змены ў DOM.

Як я магу гэта зрабіць? Напрыклад, у прыведзеным ніжэй кодзе, ён павінен вярнуць «гэта працуе», каб суцешыць. Замест гэтага ён друкуе «працу аленевай скуры». Калі ласка, дапамажыце!!

Show inline popup

<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>
11

11 адказы

Для Magnific Popup v0.9.8

var magnificPopup = $.magnificPopup.instance,
              cur = magnificPopup.st.el;
console.log(cur.attr('myatt'));
13
дададзена

Для Magnific Popup v0.9.8

var magnificPopup = $.magnificPopup.instance,
              cur = magnificPopup.st.el;
console.log(cur.attr('myatt'));
13
дададзена

Па-першае, я рэкамендую вам выкарыстоўваць атрыбут дадзеных (данных карыстацкіх = «Foo») або вядомы атрыбут.

HTML:

  Do it!
  Do it!

JQuery:

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

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

Я не ведаю, калі лепшы спосаб існуе. На самай справе вы можаце прачытаць іх дакументацыю аб якіх метадах, і вы ўбачыце там. Я тэставаў вышэй код і ўсё працуе выдатна :)

6
дададзена
Адзначым вышэй працуе толькі для старых версій Magnific Усплывальныя. Калі вы выкарыстоўваеце што-небудзь у мінулым версіі 0.9.8 см @Konpaka адказаць ніжэй.
дададзена аўтар Styledev, крыніца

Па-першае, я рэкамендую вам выкарыстоўваць атрыбут дадзеных (данных карыстацкіх = «Foo») або вядомы атрыбут.

HTML:

  Do it!
  Do it!

JQuery:

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

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

Я не ведаю, калі лепшы спосаб існуе. На самай справе вы можаце прачытаць іх дакументацыю аб якіх метадах, і вы ўбачыце там. Я тэставаў вышэй код і ўсё працуе выдатна :)

6
дададзена
Адзначым вышэй працуе толькі для старых версій Magnific Усплывальныя. Калі вы выкарыстоўваеце што-небудзь у мінулым версіі 0.9.8 см @Konpaka адказаць ніжэй.
дададзена аўтар Styledev, крыніца

Для V 0.9.9 .:

<�Код> this.currItem.el

5
дададзена

Для V 0.9.9 .:

<�Код> this.currItem.el

5
дададзена
// "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')
0
дададзена

Акрамя таго, усярэдзіне растуляць: функцыя (пункт) {} , this.content можа дапамагчы .. Гэта будзе вяртаць DIV змесціва паказана на малюнку. карысна з кодам <> змены: функцыі() {} а. Спадзяюся, што гэта дапамагае нехта накшталт мяне.

0
дададзена

Акрамя таго, усярэдзіне растуляць: функцыя (пункт) {} , this.content можа дапамагчы .. Гэта будзе вяртаць DIV змесціва паказана на малюнку. карысна з кодам <> змены: функцыі() {} а. Спадзяюся, што гэта дапамагае нехта накшталт мяне.

0
дададзена

Пстрыкнуў элемент можна атрымаць у функцыі зваротнага выкліку з дапамогай:

this.st.el

Ўнутры функцыі зваротнага выкліку, «гэта» ставіцца да $ .magnificPopup.instance.

Пад адкрытых ўласцівасцямі:

"magnificPopup.st.el//Target пстрыкнуў элемент, які адкрыў ўсплывальнае акно (працуе, калі ўсплывальнае акно ініцыялізуецца з DOM элемента)"

0
дададзена

Пстрыкнуў элемент можна атрымаць у функцыі зваротнага выкліку з дапамогай:

this.st.el

Ўнутры функцыі зваротнага выкліку, «гэта» ставіцца да $ .magnificPopup.instance.

Пад адкрытых ўласцівасцямі:

"magnificPopup.st.el//Target пстрыкнуў элемент, які адкрыў ўсплывальнае акно (працуе, калі ўсплывальнае акно ініцыялізуецца з DOM элемента)"

0
дададзена