jquery - Material 设计波浪效果不适用于动态创建的按钮

标签 jquery twitter-bootstrap bootstrap-material-design

我正在尝试使用 jQuery 的 append 方法创建按钮。然而,如果我点击 jQuery 创建的按钮,它们不会产生波浪效果。我在 HTML 中创建的按钮具有波浪效果。

为什么不一样?如何让 jQuery 创建的按钮也出现波浪效果?

感谢您的帮助!

$('#line').append('<button type="button" class="btn btn-lg btn-primary">Button created by js</button>');
<link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.3.1/css/bootstrap.min.css" rel="stylesheet"/>
<link href="https://cdnjs.cloudflare.com/ajax/libs/mdbootstrap/4.7.5/css/mdb.min.css" rel="stylesheet"/>

<button id="btn1" type="button" class="btn btn-lg btn-primary">
  Button
</button>

<hr id="line">

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.3.1/js/bootstrap.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/mdbootstrap/4.7.5/js/mdb.min.js"></script>

最佳答案

MDBootstrap 库中的 Waves 效果不会自动应用于动态创建的元素。您需要在新按钮上手动实例化它。根据documentation您可以通过调用Waves.attach('.btn', ['waves-light']);来实现您的情况.

另请注意,正如 @VVV 在评论中所述,<hr>主要用于定义 HTML 页面中的主题中断,使用 after()而不是append()会更好,因为此代码不会通过 W3C 验证。

$('#line').after('<button type="button" class="btn btn-lg btn-primary">Button created by js</button>');

Waves.attach('.btn', ['waves-light'])
<link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.3.1/css/bootstrap.min.css" rel="stylesheet"/>
<link href="https://cdnjs.cloudflare.com/ajax/libs/mdbootstrap/4.7.5/css/mdb.min.css" rel="stylesheet"/>

<button id="btn1" type="button" class="btn btn-lg btn-primary">
  Button
</button>

<hr id="line">

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.3.1/js/bootstrap.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/mdbootstrap/4.7.5/js/mdb.min.js"></script>

关于jquery - Material 设计波浪效果不适用于动态创建的按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55377058/

相关文章:

javascript - 如何使用 Javascript 动态绘制网格框以捕捉到网格

javascript - 如何使用 jQuery 访问模式对话框中的 id?

javascript - 加载页面后如何设置选择选项 'selected'?

javascript - 如何在 Bootstrap 模式中将背景图像动态绑定(bind)到 div 时设置加载 gif

javascript - Bootstrap 密码输入切换功能不起作用

javascript - 在 jQuery 1.9+ 中使用 .load()

jquery - Bootstrap 的 jQuery 版本

css - 表格行的 Material 波纹效果

twitter-bootstrap - Bootstrap material design-动态加载数据时 float 标签不 float

jhipster - jhipster 的 UI 库