laravel - 如何解决这个 select2 外观问题?(使用 BootStrap 4 和 Laravel 框架)
问题描述
我正在学习 Laravel 框架,我想用 Laravel-mix 将 Select2 添加到我的项目中。经过几个小时的尝试,我做到了,一切似乎都很好,除了一点点,但非常烦人的问题。
当我点击 my<select>
时,里面的搜索输入没有被聚焦,所以看起来像这样:
好的,还不错,但是当我点击搜索输入时,黑线闪烁不到 0.5 秒:
在那之后,这条线看起来应该是这样(注意在第一张图片上这条线丢失了):
我不太确定,我应该提供哪些代码行。
我使用npm i select2
命令安装select2。
然后我使用composer require ttskch/select2-bootstrap4-theme
命令来安装更好的引导程序。
webpack.mix.js
mix.js('resources/js/app.js', 'public/js')
.sass('resources/sass/datatables.scss', 'public/css')
.sass('resources/sass/app.scss', 'public/css')
.postCss('vendor/ttskch/select2-bootstrap4-theme/dist/select2-bootstrap4.min.css', 'public/css')
.postCss('node_modules/select2/dist/css/select2.min.css', 'public/css')
.sourceMaps();
引导程序.js
try {
window.jQuery = window.$ = require('jquery');
window.Popper = require('popper.js').default;
require('bootstrap');
require('select2');
require( 'jszip' );
require( 'pdfmake' );
require( 'datatables.net-bs4' )();
require( 'datatables.net-buttons-bs4' )();
require( 'datatables.net-buttons/js/buttons.html5.js' )();
require( 'datatables.net-buttons/js/buttons.print.js' )();
require( 'datatables.net-datetime' )();
require( 'datatables.net-fixedcolumns-bs4' )();
require( 'datatables.net-fixedheader-bs4' )();
require( 'datatables.net-keytable-bs4' )();
require( 'datatables.net-responsive-bs4' )();
require( 'datatables.net-rowgroup-bs4' )();
require( 'datatables.net-rowreorder-bs4' )();
require( 'datatables.net-scroller-bs4' )();
require( 'datatables.net-searchbuilder-bs4' )();
require( 'datatables.net-searchpanes-bs4' )();
require( 'datatables.net-select-bs4' )();
} catch (e) {}
应用程序.js
jQuery(function () {
$(".s2").select2({ theme: 'bootstrap4', focus: true });
});
app.blade.php
<!-- Styles (on the head section)-->
<link href="{{ asset('css/app.css') }}" rel="stylesheet">
<link href="{{ asset('css/datatables.css') }}" rel="stylesheet">
<link href="{{ asset('css/select2.min.css') }}" rel="stylesheet">
<link href="{{ asset('css/select2-bootstrap4.min.css') }}" rel="stylesheet">
...
<select class="s2" style="width: 100%" name='choice' required>
<option value="">Your choice</option>
<option value="option1">Option 1</option>
<option value="option2">Option 2</option>
</select>
...
<!-- Scripts (at the bottom of page) -->
<script src="{{ asset('js/app.js') }}" ></script>
请帮助我理解我的错误以及如何解决它。我以前从未使用过任何框架,所以在我的其他项目中,我只添加了大约三行代码,一切都运行良好,但在这里我感到完全迷失了。
解决方案
嗯,这很奇怪。对我有用的解决方案是theme: 'bootstrap4'
从我的 select2 函数中删除。
在GitHub 页面上,用法被描述为:
$('select').select2({
theme: 'bootstrap4',
});
所以我不知道,为什么它不起作用,更奇怪的是,如果不指定主题,它怎么能很好地为我工作。这对我来说是火箭科学。
推荐阅读
- mongodb - 获取 2 个 MongoDB ISODates 之间的天数
- c# - 使用属性列表解析对象
并告诉 JsonConvert.DeserializeObject 使用特定的构造函数进行声明? - javascript - chrome-extension 在模态中查找登录
- io - 为什么 Posix 文件 I/O 总是阻塞?
- jwt - 从 JWK 生成 x5c 证书链
- html - 如何用“”替换CSS中的“
- jenkins - Jenkins v2.7.3 - hudson.security.ACL.as(Lorg/acegisecurity/Authentication;)Lhudson/security/ACLContext
- python - 生成括号问题中超出 Python 递归深度
- wordpress - 带有标签的短文
- javascript - How to plot clients geolocation on a Amcharts map (and deal with the asynchronous provision of the HTML5 geolocation)