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()
您必须使用交付给 Drupal 的 once() 插件。检查 JS API Overview
我的设置:"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()
您必须使用交付给 Drupal 的 once() 插件。检查 JS API Overview