Javascript 为什么jquery UI小部件没有';在我的laravel应用程序中不工作?
我有一个laravel应用程序,并试图使用dialog小部件,但我在控制台中不断遇到此错误: TypeError:$(…)。对话框不是函数[了解更多信息] 我试着测试正常的jquery函数,它工作得很好,只是jquery UIJavascript 为什么jquery UI小部件没有';在我的laravel应用程序中不工作?,javascript,php,jquery,laravel,jquery-ui,Javascript,Php,Jquery,Laravel,Jquery Ui,我有一个laravel应用程序,并试图使用dialog小部件,但我在控制台中不断遇到此错误: TypeError:$(…)。对话框不是函数[了解更多信息] 我试着测试正常的jquery函数,它工作得很好,只是jquery UI <head> <!-- CSRF Token --> <meta name="csrf-token" content="{{ csrf_token() }}"> <title>{{ con
<head>
<!-- CSRF Token -->
<meta name="csrf-token" content="{{ csrf_token() }}">
<title>{{ config('app.name', 'Laravel') }}</title>
<!-- Styles -->
<link href="{{ asset('css/app.css') }}" rel="stylesheet">
<!-- Scripts -->
<script>
window.Laravel = {!! json_encode([
'csrfToken' => csrf_token(),
]) !!};
</script>
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<link rel="stylesheet" href="/resources/demos/style.css">
<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<script type="text/javascript">
$( function() {
$( "#dialog" ).dialog({
autoOpen: false,
show: {
effect: "blind",
duration: 1000
},
hide: {
effect: "explode",
duration: 1000
}
});
$( ".opener" ).on( "click", function() {
$( "#dialog" ).dialog( "open" );
});
} );
</script>
</head>
<body>
<div id="dialog" title="Basic dialog">
<p>This is an animated dialog which is useful for displaying information. The dialog window can be moved, resized and closed with the 'x' icon.</p>
</div>
app.js
bootstrap.js
您正在使用webpack.mix.js文件中混合的.sass文件吗 如果没有,请尝试将webpack.mix.js更改为:
const { mix } = require('laravel-mix');
mix.js('resources/assets/js/app.js', 'public/js');
一般来说,Laravel和web开发都是新手;这对我很有用。您是否正在使用webpack.mix.js文件中混合的.sass文件 如果没有,请尝试将webpack.mix.js更改为:
const { mix } = require('laravel-mix');
mix.js('resources/assets/js/app.js', 'public/js');
一般来说,Laravel和web开发都是新手;这对我很有用。请查看以下链接:
注意:我对Laravel Mix(网页包)相当陌生,还在学习
在链接的示例中,hisresources/assets/js/app.js包含以下行:
import $ from 'jquery';
window.$ = window.jQuery = $;
但就我而言,我正在编辑resources/assets/js/bootstrap.js,其中包含以下行:
window.$ = window.jQuery = require('jquery');
因此,我添加了小部件导入行:
import 'jquery-ui/ui/widgets/dialog.js';
编辑之后,为了运行混合任务,我在项目根目录下运行了以下命令:npm run dev
在我的Chrome浏览器中,在调用$(…).dialog()的页面上,我打开devtools控制台,然后右键单击浏览器页面重新加载图标,然后单击空缓存和硬重新加载
因为我使用的是Laravel Mix(webpack),所以我不需要包含特定于jquery的脚本标记和样式表链接。请参阅此链接:
注意:我对Laravel Mix(网页包)相当陌生,还在学习
在链接的示例中,hisresources/assets/js/app.js包含以下行:
import $ from 'jquery';
window.$ = window.jQuery = $;
但就我而言,我正在编辑resources/assets/js/bootstrap.js,其中包含以下行:
window.$ = window.jQuery = require('jquery');
因此,我添加了小部件导入行:
import 'jquery-ui/ui/widgets/dialog.js';
编辑之后,为了运行混合任务,我在项目根目录下运行了以下命令:npm run dev
在我的Chrome浏览器中,在调用$(…).dialog()的页面上,我打开devtools控制台,然后右键单击浏览器页面重新加载图标,然后单击空缓存和硬重新加载
因为我使用的是Laravel Mix(webpack),所以我不需要包含特定于jquery的脚本标记和样式表链接。尝试在jquery-ui.js之前插入app.js。这使得jquery-ui.js覆盖任何公共代码。我发现它不会引起明显的副作用。一些项目,如工具提示,看起来会有所不同,但如果需要,您可以修改链接的js文件来处理。尝试在jquery-ui.js之前插入app.js。这使得jquery-ui.js覆盖任何公共代码。我发现它不会引起明显的副作用。某些项目(如工具提示)看起来会有所不同,但如果需要,您可以修改链接的js文件以处理该问题。您在哪一行出现此错误?$(“#对话框”).dialog({我无法重现您当前提供的代码的问题让我问您一个问题,app.js应用程序是否加载了jquery ui的副本或其他东西,可能是两个副本之间存在冲突您尝试查看完整页面输出?使用浏览器检查功能查看所有加载的js文件,具体是哪一行错误?$(“#dialog”).dialog({我无法重现您当前提供的代码的问题让我问您,app.js应用程序是否加载了jquery ui的副本或其他内容,可能是两个副本之间存在冲突您尝试查看完整页面输出?使用浏览器检查功能查看所有加载的js文件