jquery - Select2 在不重新加载页面的情况下无法正常工作
问题描述
我对 Rails 中的 Jquery select2 有疑问我有一个模型工作,其中天是一个下拉菜单,我想使用 Select2 Jquery 输入值。
下面是天字段 _form.html.erb
<div class="field">
<%= form.label :days %>
<%= form.select :days, options_for_select($days), options = {:multiple => true}, :id => "dropdown" %>
应用程序.js
//= require jquery
//= require jquery_ujs
//= require select2-full
//= require activestorage
//= require turbolinks
//= require_tree .
$(document).ready(function(){
$( "#dropdown" ).select2({
theme: "bootstrap"
});
});
select2 在重新加载页面后工作,但如果页面通过导航栏中的链接重定向,则无法工作。
下面的导航栏代码:
<nav>
<div class="container">
<ul class="main-menu">
<li><%= link_to "Home", root_path %></li>
<li><%= link_to "new work", new_work_path %></li>
</ul>
</div>
</nav>
应用程序.html.erb:
<!DOCTYPE html>
<html>
<head>
<title>Stack1</title>
<%= csrf_meta_tags %>
<%= csp_meta_tag %>
<%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %>
<%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' %>
</head>
<body>
<%= render 'layouts/navbar' %>
<%= yield %>
</body>
</html>
场景是用户在导航栏中单击新工作,并为输入值显示 new_work_path,此处 select2 不起作用,但重新加载页面后 select2 工作。
任何帮助表示赞赏。
解决方案
终于找到了我的问题的解决方案,我认为答案会帮助在研究时面临同样问题的人。而不是听 event $(document).ready(function()
,听 event for$( document ).on('turbolinks:load', function()
因为 rails 使用 turbolinks。所以我们应该将代码修改为:
$( document ).on('turbolinks:load', function() {
$( "#dropdown" ).select2({
theme: "bootstrap"
});
希望这将有助于以后的相同问题。
推荐阅读
- angular - 如何在 Angular 服务中直接使用 .subscribe?
- string - 使用空接口更改函数中的 arg
- microsoft-teams - 文件上传失败 MSTeams
- javascript - 发布请求在 Postman 和 cURL 中有效,但在 Angular 中无效
- javascript - 如何在自定义导航菜单中正确使用点击事件?
- sql - SQL查询查找每个用户的活动时间
- python - Plotly:如何摆脱多余的 xaxis 刻度?
- moodle - R/exams:exams2moodle 的开放式问题
- php - laravel 和 guzzle 身份验证
- azure - Azure kubernetes - Nginx 控制器的数量?