0

この問題を説明するためにJSFiddleを作成しました。doSomething()関数を呼び出したときにアラートが表示されないのはなぜですか?

4

6 に答える 6

5

これはdoSomething()、HTMLページで関数が定義されていないためです。jsfiddleでは、関数(jsペイン内)はjqueryのドキュメントonloadイベントによってラップされます。(設定については、jsfiddleの左側を参照してください)。だから、このように実行され、

$(document).ready(function() {
    function doSomething() {
      alert('Hello!'); 
    }
});

それがどのように包まれたかを見てください。アクセスできません。これを修正するには、オブジェクトに割り当てる必要がありwindowます。jsペインで関数を次のように記述します

window.doSomething=function() {
  alert('Hello!'); 
}

それはうまくいくでしょう


onclickHTML要素の属性を使用しないことをお勧めします。JSでイベントハンドラーを割り当てる方がよいでしょう。

$("img").click(function(){
  alert("Hello");
});
于 2013-01-11T07:39:24.210 に答える
5

javascriptを機能させるには、jsfiddleのフレームワークオプションを無効にする必要があります

デモ

function doSomething() {
  alert('Hello!'); 
}
于 2013-01-11T07:39:30.977 に答える
4

これは「フィドルシング」です。[nowrap (head)フレームワークの選択]フィールドの最初の選択から選択します。

于 2013-01-11T07:40:48.190 に答える
3

JsFiddleが行うことは<HTML><head>および<body>タグを作成することです。JsFiddleがマークアップを処理した後、マークアップが無効になるため、HTMLに含めるべきではありません。また、ドキュメントのonloadイベントでJSをラップします。したがって、関数は思ったようにルートスコープではなく、関数のスコープで定義されており、document.onload関数の外部にあるため、本体内から関数に到達できませんでした。JsFiddle属性の「wrapin」を「nowrap(head)」に変更しましたが、機能しました。

于 2013-01-11T07:45:02.590 に答える
1

あなたの関数dosomeThing()はページで定義されていません。ヘッダータグをこれに置き換えてください

 <head>
    <script>
      function doSomething() {
  alert('Hello!'); 
}
    </script>
  </head>

その後、再試行してください

于 2013-01-11T07:37:31.947 に答える
0

これが完全なコードです。エディターをコピーして貼り付けるだけです。それは

<!doctype html>
<html lang='en'>
<head>
<meta charset='utf-8'>
<title>Javascript Events</title>
<script type='text/javascript'>
window.onload = function() {
    var image_one = document.getElementById('imageOne');
    var image_two = document.getElementById('imageTwo');

    image_one.onclick = function() {
        alert('Hello!');
    }


    image_two.onclick = function() {
        alert('Hello!');
    }


}
</script>
</head>
<body>
    <img id="imageOne" src="http://upload.wikimedia.org/wikipedia/commons/thumb/0/0c/White_and_yellow_flower.JPG/320px-White_and_yellow_flower.JPG" />
    <img id="imageTwo" src="http://upload.wikimedia.org/wikipedia/en/7/70/Example.png" /> 
</body>
</html>
于 2013-01-11T08:05:47.053 に答える