web-dev-qa-db-ja.com

この単純なJSFiddleが機能しないのはなぜですか?

JSFiddleに入れたかったコードがいくつかあります。うまくいきませんでした。絞り込むと、この最も単純なコードを機能させることすらできません。

JSFiddle

function displaymessage() {
  alert("Hello World!");
}
<form>
  <input type="button" value="Click me!" onclick="displaymessage()" />
</form>

<p>By pressing the button above, a function will be called. The function will alert a message.</p>

alertボックスはJSFiddleに表示されません。

16
thomasf1

選択する No wrap - bottom of <head>JavaScript設定の「ロードタイプ」ドロップダウン。

Screenshot of the dropdown mentioned above

32
Igor Dymov

関数をonLoad/onReadyから外す を取得する必要があります。そうしないと、別のスコープ内に配置され、ボタンが関数にアクセスできなくなります。あなたの場合、あなたはラップなし(頭)を使う必要があります

生成されるコードは次のようになります。

Ext.onReady(function() {
    function displaymessage()
    {
        alert("Hello World!");
    }
});
6
John Kalberer

「onDomReady」ではなく「nowrap(head)」を実行するようにコードを変更します。関数は、マークアップにそのまま表示されません。

4
FishBasketGordo

申し訳ありませんが...あなたが提案するものよりもはるかに簡単です...

「onclick」属性を使用してjs関数を呼び出したい場合は、javascritコードを直接頭に入れてください。domreadyなどは必要ありません。

次に、関数名の前に「javascript:」を含める必要があります。

参照: http://jsfiddle.net/XNJxT/1838/

<input type="button" value="Click me!" onclick="javascript:displaymessage()" />
0
Korreca

Html onclick = "func()"を使用する場合は、関数をdocument.readyの外に移動する必要があるかもしれません。

$(document).ready(function() {
  ...
}

function func(){
  ...
}
0