Javascript + Drupal

Javascript + Drupal

我的设置:"open video" 按钮。一个表单,当用户单击讲义或视频时,ajax 被调用以使用按钮呈现文件。

我的问题是:

当我渲染页面并点击"open the video"时,我必须点击两次才能退出。我认为这是因为 ModalVideo 被调用了两次,一次是在渲染时,一次是在提交表单时。我想知道是否有人对 forms/javascript 曾经 运行 的 drupal 行为有任何指示或参考。谢谢。

Drupal.behaviors.customJS = {
  attach: function(context, settings){
     // import ModalVideo from 'modal-video';
     new ModalVideo(".js-video-vimeo-btn",{channel:'vimeo'});
  }
}

------更新的解决方案------

 Drupal.behaviors.customJS = {
  attach: function(context, settings){
     //every time the view is updated on ajax call, run only once
     $('.view-pdf-views').once(function(){
         // import ModalVideo from 'modal-video';
        new ModalVideo(".js-video-vimeo-btn",{channel:'vimeo'});
     });
  }
 }

如果您使用 .on() 来监听按钮点击,您应该将其更改为 .one()

http://api.jquery.com/one/

您必须使用交付给 Drupal 的 once() 插件。检查 JS API Overview