1. ホーム
  2. javascript

[解決済み] なぜ私のJavaScriptはJSFiddleで動作しないのですか?

2022-09-20 02:56:55

質問

このような場合、何が問題なのかがわかりません。 JSFiddle .

HTMLです。

<input type="button" value="test" onclick="test()">

JavaScriptです。

function test(){alert("test");}

そして、ボタンをクリックすると - 何も起こりませんでした。コンソールは "test not defined" と言っています。

JSFiddleのドキュメントを読みましたが、そこではJSコードが <head> に追加され、HTMLコードは <body> (というように、このJSコードはhtmlよりも先に動作するはずです)。

どのように解決するのですか?

この関数はロードハンドラ内で定義されているため、異なるスコープにあります。 コメントで @ellisbben が指摘しているように、これを修正するには、関数を明示的に window オブジェクトで明示的に定義することで修正できます。 もっといいのは、オブジェクトにハンドラをさりげなく適用するように変更することです。 http://jsfiddle.net/pUeue/

$('input[type=button]').click( function() {
   alert("test");   
});

インラインではなく、この方法でハンドラを適用することで、HTMLがきれいに保たれることに注意してください。 私はjQueryを使用していますが、あなたが好きなら、フレームワークの有無や、別のフレームワークを使用して行うことができます。