In Drupal 8, with the bootstrap theme when you create a link with class
and data-dialog-type
attributes like the bellow code:
<a class="use-ajax" data-dialog-type="modal"
href="http://drupal.page/front">text
</a>
You will open content of the page in #drupal-modal
element that has these html wrappers:
<div id="drupal-modal" class="modal fade in" tabindex="-1" role="dialog" style="display: block;">
<div class="modal-dialog" role="document">
<div class="modal-content">
This structure is generated in: \themes\bootstrap\js\modal.js
how we can see on the link .
How do I modify it so that I can pass a class name to the #drupal-modal
element from the link a.use-ajax
? The class name text could be value of an attribute of the link.
Specifically I'd like to add modal-lg
or modal-sm
classes or some custom ones.
5条答案
按热度按时间omvjsjqw1#
data-dialog-options允许您将任何选项传递给jQuery's Dialog Widget。其中一个选项是
dialogClass
,它允许您设置类。示例html:
无需自定义js。
v6ylcynt2#
感谢@Waxi,我已经通读了另一期,我想出了这个:
必须使用
mousedown
事件,因为click
无法工作,因为它被某些东西阻塞了。然后它获取data-dialog-class
的内容,这样它就可以在模态实际加载后添加到.modal-dialog
元素中,因为在此之前它的html不存在swvgeqrz3#
我的解决方案
于飞:
Javascript语言:
ygya80vv4#
要在这篇文章的评论中添加补充信息,请看下面的例子。我用它来以编程方式隐藏标题栏,但自定义类允许你做同样的甚至更多的事情。
bfrts1fy5#
使用它来添加自定义类
对话框选项= '{“类”:{“用户界面对话框”:“您的类名”}}'