実現したいこと
type="module"で読み込むjsファイル内にonclickで使う関数を指定したいのですが、「Uncaught ReferenceError: testLog is not defined」となります。
どのようにすれば良いでしょうか。
またなぜこの記述だと動かなくなるのでしょうか。
ソースコード
moduleの指定を消すと正常に動作します。
またhtml()でボタンを出力している理由は、後々jsで処理した動的な値をonclick=に指定した関数の引数に渡したいためです。
html()を用いず、htmlファイルにonclick='testLog()'を書いてもエラーになるようでした。
index.html
1<!DOCTYPE html> 2<html lang="en"> 3<head> 4 ~省略~ 5 <script src="https://code.jquery.com/jquery-3.3.1.js"></script> 6 <script src="./index.js" type="module"></script> 7</head> 8 9<body> 10 <div id="btn"></div> 11</body> 12 13</html>
main.js
1const testLog = () => { 2 console.log("テストログ"); 3} 4 5$(function () { 6 $("#btn").html("<div onclick='testLog()'>ボタン</div>"); 7})
よろしくお願いいたします。
回答2件
あなたの回答
tips
プレビュー