2016-11-24 5 views
0

Мне нужно перехватить «закрытое» событие для Модального всплывающего окна в Magento 2, но я не знаю, где и как это сделать.Перехватить события по модальной функции в Magento 2

Это скрипт в файле шаблона, он отлично работает, но, как я писал, мне нужно перехватить закрытое событие, чтобы остановить воспроизведение видео.

<script> 
 
    require(
 
      [ 
 
       'jquery', 
 
       'Magento_Ui/js/modal/modal' 
 
      ], 
 
      function ($, modal) { 
 
       var options = { 
 
        type: 'popup', 
 
        responsive: true, 
 
        title: $.mage.__('Title Text'), 
 
        buttons: [{ 
 
          text: $.mage.__('Close'), 
 
          class: '', 
 
          click: function() { 
 
           this.closeModal(); 
 
           var video = document.getElementById("Video1"); 
 
           video.pause(); 
 
          } 
 
         }] 
 
       }; 
 
       var popup = modal(options, $('#modalVideo')); 
 
       $("#modalVideoOpen").on("click", function() { 
 
        $('#modalVideo').modal('openModal'); 
 
        var video = document.getElementById("Video1"); 
 
        video.play(); 
 
       }); 
 
      } 
 
    ); 
 
</script>

ответ

3
$('#modalVideoOpen').data('mage-modal').modal.on('modalclosed', function(){console.log('closed')}) 

Модальный виджет запускает «закрыт» событие, и как jquery doc говорит «тип события определяется путем конкатенации имя модуля и имя обратного вызова», мы должны подписаться на " modalclosed»

0

вы также можете указать это в настройках:

var options = { 
    type: 'popup', 
    responsive: true, 
    title: $.mage.__('Title Text'), 
    close: function (e) { 
     // fun here! 
    } 
};