web-dev-qa-db-ja.com

javascriptonclickがjsfiddleで機能しない

Jsfiddleを作成しようとしていますが、onclickがjsfiddleで機能しません。私のコードの何が問題になっていますか

<input value="press" type="button" onclick="myclick()">


function myclick(){
   alert("myclick")
}

http://jsfiddle.net/hiteshbhilai2010/gs6rehnx/11/

編集

No wrap - In headを試し、document.readyで再試行しましたが、jsfiddleで再び機能しません

ERROR - Uncaught ReferenceError: myclick is not defined 

http://jsfiddle.net/hiteshbhilai2010/33wLs160/6/

既存の質問で確認しました ここ しかし、jsfiddleで試しているときに問題が発生しています

誰かが私を助けてくれますか....ありがとう

15
Hitesh

ライブラリなし(純粋なJS)およびラップなし-ヘッド内を選択する必要があります-)。次に、JavaScriptページを含む単純なHTMLとして機能します。

これは、<script><head>要素に挿入されます。

function myclick(){
  alert("myclick")
}

デモ を参照してください

9
dreyescat

他の人が言ったように、最初のケースでは、JavaScriptパネル設定として_No wrap - in <head>_または_No wrap - in <body>_を設定する必要があります(jsパネルの右上にある青いリンク)。

2番目の(編集)質問では、関数内のコードとjsが(新しいコンテキスト内で)それを実行しますが、関数を定義し、呼び出しや割り当てなしで無視するため、何も実行されません。

alert(myclick)を呼び出すと、すべてのコードが実行され、その時点で定義されていることがわかります。 このフィドルを参照

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

  //alert("ready is executed");

  function myclick(){
    alert("myclick is called")
    window.location.reload(true);
  }

  alert(myclick); //this will show the myclick is a defined function!

  //document.getElementsByTagName("input")[0].onclick = myclick;
})
_

あなたがこれを呼ぶならば:

_document.getElementsByTagName("input")[0].onclick = myclick;
_

その$(document).ready({...})スコープでは、ボタンに割り当てられ、希望どおりに機能します。

4
S.Serpooshan

スクリプトパネルの「ロードタイプ」で「ラップなし-下部」を選択します。これはJsfiddleのソリューションです(2019年12月17日まで)。

Image

0
Koba

これは機能しています。ドキュメント準備完了イベントから削除するだけです。また、JavaScriptではセミコロンはオプションですが、セミコロンを使用することをお勧めします。

function myclick() {
    alert("myclick");
    window.location.reload(true);
}
<input value="press" type="button" onclick="myclick();">
<script>
    alert("home");
</script>

これが フィドル です。

0
Alex Char
<input value="press" id='a' type="button">
document.getElementById('a').onclick = function() { alert(1); }

http://jsfiddle.net/gs6rehnx/12/

0
ddd_dd_2012