jquery - Jquery UI .slider 不是一个函数
问题描述
在我的 Laravel 项目中,我试图包含来自 jQueryUI 的范围滑块,但是我不断收到错误消息。我包括 jQuery 和 jQueryUI。如果我检查检查器中的来源,则两个文件都已加载。
<head>
...
<!-- Styles -->
<link href="{{asset('css/app.css')}}" type="text/css" rel="stylesheet"/>
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<!-- Scripts -->
<script
src="https://code.jquery.com/jquery-3.4.1.min.js"
integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo="
crossorigin="anonymous"></script>
<script
src="https://code.jquery.com/ui/1.12.0/jquery-ui.js"
integrity="sha256-0YPKAwZP7Mp3ALMRVB2i8GXeEndvCq3eSl/WsAl1Ryk="
crossorigin="anonymous"></script>
<script>
$(document).ready(function () {
var outputSpan = $('#spanOutput');
var sliderDiv = $('#slider');
sliderDiv.slider({
range: true,
min: 18,
max: 100,
values: [20, 30],
slide: function (event, ui) {
outputSpan.html(ui.values[0] + ' - ' + ui.values[1] + ' Years');
},
stop: function (event, ui) {
$('#txtMinAge').val(ui.values[0]);
$('#txtMaxAge').val(ui.values[1]);
}
});
outputSpan.html(sliderDiv.slider('values', 0) + ' - '
+ sliderDiv.slider('values', 1) + ' Years');
$('#txtMinAge').val(sliderDiv.slider('values', 0));
$('#txtMaxAge').val(sliderDiv.slider('values', 1));
});
</script>
<script src="{{asset('js/app.js')}}" defer type="text/javascript"></script>
<script src="{{asset('js/myScripts.js')}}" defer type="text/javascript"></script>
</head>
<body>
<div id="app">
@include('includes.sidebar')
@include('includes.search')
@include('includes.faq')
@yield('content')
@include('includes.subscribe')
</div>
</body>
我得到的警告是:
>jQuery.Deferred exception: sliderDiv.slider is not a function TypeError: sliderDiv.slider is not a function
at HTMLDocument.<anonymous> (http://127.0.0.1:8000/:29:27)
at e (https://code.jquery.com/jquery-3.4.1.min.js:2:29453)
at t (https://code.jquery.com/jquery-3.4.1.min.js:2:29755)
undefined
我得到的错误是:
>Uncaught TypeError: sliderDiv.slider is not a function
at HTMLDocument.<anonymous> ((index):29)
at e (jquery-3.4.1.min.js:2)
at t (jquery-3.4.1.min.js:2)
解决方案
与我的 app.js 文件存在冲突,该文件只有一行包含引导 javascript。最终通过 CDN 包含引导 javascript。
<!-- Styles -->
<link href="{{asset('css/app.css')}}" type="text/css" rel="stylesheet"/>
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<!-- Scripts -->
<script
src="https://code.jquery.com/jquery-3.4.1.min.js"
integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo="
crossorigin="anonymous"></script>
<script
src="https://code.jquery.com/ui/1.12.0/jquery-ui.js"
integrity="sha256-0YPKAwZP7Mp3ALMRVB2i8GXeEndvCq3eSl/WsAl1Ryk="
crossorigin="anonymous"></script>
<script>
// setTimeout(function() {
$(document).ready(function () {
var outputSpan = $('#spanOutput');
var sliderDiv = $('#slider');
sliderDiv.slider({
range: true,
min: 18,
max: 100,
values: [20, 30],
slide: function (event, ui) {
outputSpan.html(ui.values[0] + ' - ' + ui.values[1] + ' Years');
},
stop: function (event, ui) {
$('#txtMinAge').val(ui.values[0]);
$('#txtMaxAge').val(ui.values[1]);
}
});
outputSpan.html(sliderDiv.slider('values', 0) + ' - '
+ sliderDiv.slider('values', 1) + ' Years');
$('#txtMinAge').val(sliderDiv.slider('values', 0));
$('#txtMaxAge').val(sliderDiv.slider('values', 1));
});
// }, 10000);
</script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script>
<script src="{{asset('js/myScripts.js')}}" defer type="text/javascript"></script>
推荐阅读
- python - 使用 Python3 以秒为单位显示年龄
- reactjs - 使用 React.js 和 Typescript 时模块没有导出成员问题
- java - 无法使用 HtmlUnit 2.35.0 登录网站
- python - 虽然我的以下尝试/除代码不起作用?它没有捕捉到 HTTPError
- css - 我想让博主 H2,H3,H4 背景限于文字大小
- c++ - 如何正确释放 std::map 的内存
- react-native - 提取问题,response.json()
- mysql - 如何为 MySQL 中的 UPDATE-JOIN 查询锁定表?
- c - Malloc 信号:SIGABRT(信号 SIGABRT)问题
- javascript - HeadlessChrome 浏览器挂起或关闭,或由于 Testcafe 中的网络问题