前提・実現したいこと
よろしくお願いします。
Laravel 5.6上でLaravelMixを用いてJavaScriptファイルをコンパイルし、HTMLファイルから正しく読み込ませたいです。
発生している問題・エラーメッセージ
コンパイルとファイル読み込みは上手くいくものの、jsの関数がUndefinedになってしまう。
(index):25 Uncaught ReferenceError: show is not defined at HTMLAnchorElement.onclick ((index):25)
該当のソースコード
メニューの折り畳み機能(onclickで展開される)をjsで書いています。
js
1function show(inputData){ 2 var objID=document.getElementById( "layer_" + inputData ); 3 var buttonID=document.getElementById( "category_" + inputData ); 4 if(objID.className=='close') { 5 objID.style.display='block'; 6 objID.className='open'; 7 }else{ 8 objID.style.display='none'; 9 objID.className='close'; 10 } 11}
html
1<!DOCTYPE html> 2<html lang="ja"> 3<head> 4 <!-- 中略 --> 5 <script src="{{ asset('js/test.js') }}"></script> 6</head> 7<body> 8 <a href="javascript:void(0)" id="category_折りたたみA" onclick="show('折りたたみA');">メニュー1</a> 9 <div id="layer_折りたたみA" style="display: none;position:relative;margin-left:15pt" class="close"> 10 メニュー1.1<br> 11 メニュー1.2<br> 12 メニュー1.3<br> 13</body>
以下はwebpack.mix.jpの記述です。
js
1mix.js('resources/assets/js/test.js', 'public/js')
以上の状態でnpm run dev をすると、コンパイルされたjsがpublic/js内に出力されますが、
localhostで上で確認しクリックイベントが発生したら上述のエラーになります。
jsファイルは読み込まれているのですが、関数がUndefinedになってしまう状況です。
試したこと
コンパイル前のjsファイルをpublic/jsに置いたところ、正常に動作したのでコンパイルが原因だと思っていますが、
そこからの対処法がわかりません・・・。
補足情報(FW/ツールのバージョンなど)
php 7.2.10
Laravel 5.6.38
npm 6.4.1
Node.js 8.12.0
あなたの回答
tips
プレビュー