2017-11-12 1 views
0

CDN을 통해 jQuery 3.2.1을 성공적으로로드하는 Laravel 5.5 앱의 기본 레이아웃 템플릿이 있습니다. jQuery가 제대로로드되었는지 확인하기 위해 개발자 네트워크 탭을 확인했습니다. 나는 단순히 양식을 제출 일부 jQuery를 작성하려고했습니다, 그건 내 레이아웃 템플릿을 확장, 템플릿에서

<html> 
    <head> 
     <title>My app - @yield('title')</title> 
    </head> 

    <body> 
     <div class="container"> 
      @yield('content') 
     </div> 

     <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"> 
     </script> 
    </body> 
</html> 

(I가 200 HTTP 상태 코드를 볼 수 있기 때문이다).

@extends('layouts.app') 

@section('content') 
    <form id="my-form" action="{{ route('item.store') }}"> 
     <input type="text" name="name" /> 
     <button id="my-submit-button" type="submit">Add</button> 
    </form> 

    <script> 
     $(document).ready(function() { 
      $("#my-form").submit(function(event) { 
       event.preventDefault(); 
      }); 

      $("#my-submit-button").click(function() { 
       axios.post('/items', { 
        name: 'item-name', 
       }) 
       .then(function (response) { 
        console.log(response); 
       }) 
       .catch(function (error) { 
        console.log(error); 
       }); 
      }); 
     }); 
    </script> 
@endsection 

문제는 다음과 같습니다. 계속해서 : "잡히지 않은 ReferenceError : $가 정의되지 않았습니다". 내가 도대체 ​​뭘 잘못하고있는 겁니까?

감사합니다.

답변

1

@yield('content')으로 레이아웃 템플릿에 코드를로드하기 전에 스크립트 태그로 jQuery 라이브러리를로드하기 때문에 이러한 현상이 발생합니다. HTML 태그를 사용하는 코드 위에 head 태그에 jquery 링크를 넣으십시오.

<html> 
<head> 
    <title>My app - @yield('title')</title> 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"> 
    </script> 
</head> 

<body> 
    <div class="container"> 
     @yield('content') 
    </div> 

</body> 

관련 문제