第一次点击后Bootstrap插件仍然不工作(link_to version)

iibxawm4  于 12个月前  发布在  Bootstrap
关注(0)|答案(2)|浏览(113)

我看到有一个类似的帖子here,但它并没有完全回答我的问题的版本。我仍然是新的Rails,所以我知道这一定是一个简单的原因背后的逻辑。
我不知道如何调整Bootstrap与铁路路线;它一直添加一个#到我的链接结束,但我不知道如何防止这种情况,但仍然启用了链接。

<li class="dropdown">
  <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Conditions & Treatments <span class="caret"></span></a>
  <ul class="dropdown-menu">
    <li><%= link_to 'Achilles Tendinitis, Tendinosis', conditions_achilles_path %></li>
    <li><%= link_to 'Arthritis, Hallus Limitus, Hallux Rigidus', conditions_arthritis_path %></li>
  </ul>
</li>

字符串
如果有人能解释一下我确信是一个简单的逻辑,那就太好了,谢谢。

xxls0lw8

xxls0lw81#

Turbolinks可能会与你的应用程序的JavaScript行为发生冲突,这取决于你来修复它。这对于你编写的代码来说很容易做到,但是当问题出现在第三方库或插件中时,识别和解决冲突可能会变得更加令人沮丧。
这些冲突的一些共同原因包括:

  • 已绑定到DOM Ready事件
  • 加载外部脚本并将元素附加到文档的head的代码
  • window对象上使用全局变量。

Turbolinks鼓励你把你的JavaScript放在<head>中,这样每次<body>被替换时JS就不会被执行。
你可以将JS放在页面的底部,仍然可以让你的代码工作。代码必须清理页面的先前状态,重新初始化,并且不总是依赖于document.ready。例如,要启用工具提示:

// Cleanup + enable Bootstrap tooltips on jQuery's ready event as well as
// Turbolinks's page change event.
$(document).on("ready page:change", function() {
  $("[data-toggle='tooltip']")
    .tooltip("destroy")
    .tooltip();
});

字符串

vx6bjr1n

vx6bjr1n2#

我只是有一个类似的问题。我有一个插件,它的工作,但只有第一次点击。页面刷新后,它不再工作。
我按照Loqman的说法,将元素放在头部而不是身体中。我将这段代码移到头部:

<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js" integrity="sha384-C6RzsynM9kWDrMNeT87bh95OGNyZPhcTNXj1NW7RuBCsyN/o0jlpcV8Qyq46cDfL" crossorigin="anonymous"></script>

字符串
通过这样做,我的网络现在可以正常工作了。我使用的是bootstrap 5和rails 7。

相关问题