【问题标题】:jquery works in external js file but not in view bladejquery 在外部 js 文件中有效,但在视图刀片中无效
【发布时间】:2018-01-22 07:40:50
【问题描述】:

我正在使用 laravel 5.5。当我在外部 js 文件中使用 jquery 时,它可以工作,但是当我在刀片视图中编写 jquery 时,它会给出错误:$ 未定义或找到。我还通过在加载 app.js 文件后在布局文件中编写 jquery 进行检查,它可以工作。 Jquery 只是不在刀片内部工作。当我加载 jquery 时,jquery 在刀片内部工作。但是,即使在没有加载 jquery 之后,它在外部 js 和布局中是如何工作的。所以我担心的是,如果 jquery 默认在 laravel 中加载,为什么它不能在刀片中工作?

这是我的刀片内容:

@extends('layouts.app')
@section('content')
<div class="container">
</div>
@endsection

<script type="text/javascript">
$(document).ready(function() {
    alert('lol');
})
</script>

【问题讨论】:

  • 你导入 jquery 到页眉还是页脚?
  • 在此处发布您的刀片文件内容
  • 执行$..代码后,您的jquery文件似乎已加载。
  • 不,我没有导入 jquery,但它仍然可以在外部 js 和布局中工作,但不能在刀片中
  • jquery 在您的app.js 文件中可用。在导入app.js后尝试放置你的代码,它会起作用

标签: javascript php jquery laravel laravel-5.5


【解决方案1】:

您的 javascript 代码位于任何部分之外,因此不会被呈现。在 Blade 中渲染内联 javascript 的一个好方法是在布局中使用 @stack,然后从扩展布局的任何视图中使用 @push

app.blade.php:

<html>
<head></head>
<body>
[...]
@yield('content')
[...]
<script src="jquery.js"></script>
@stack('scripts')
</body>
</html>

你的观点(template.blade.php):

@extends('layouts.app')
@section('content')
<div class="container">
</div>
@endsection

@push('scripts')
<script type="text/javascript">
$(document).ready(function() {
    alert('lol');
})
</script>
@endpush

【讨论】:

    【解决方案2】:

    请理解:

    这确实有效:

    <html>
     <header>
      <script src="jquery.js"></script>
     </header>
     <body>
    
      <script>
       /* your js inline code here */
      </script>
     </body>
    </html>
    

    但更好的解决方案是:

    <html>
     <header>
    
     </header>
     <body>
    
      <script src="jquery.js"></script>
      <script>
       /* your js inline code here */
      </script>
     </body>
    </html>
    

    这不起作用:

    <html>
     <header>
    
     </header>
     <body>  
      <script>
       /* your js inline code here */
      </script>
      <script src="jquery.js"></script>
     </body>
    </html>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-06-16
      • 1970-01-01
      • 2018-05-18
      • 1970-01-01
      • 2014-07-24
      • 1970-01-01
      • 2013-10-30
      相关资源
      最近更新 更多