2012-05-08 26 views
7

私はこの短いフィドルを作成しました:http://jsfiddle.net/NZnN2/。ボタンをクリックしたときに警告がポップアップしないのはなぜですか?"fiddle"でJavascript関数が呼び出されていません

+1

を行うには、左のバーに代わり 'オンロード' の '何ラップ' を設定してはなりません。 – Imp

+5

私は迷っています。なぜこの質問は積極的に投票されますか?それは、問題が正確に何かについて少し詳しく説明することによって少し改善することができますが、彼/彼女は使いやすく、問題を見ているフィドルを持っています...? – Beska

+5

問題のコードはありません。何が起こっているのか、ひどいタイトルなのか説明はありません。 – Interrobang

答えて

11

onloadハンドラにJavaScriptコードが含まれているため、display_messageはグローバルではないため、HTMLでアクセスできません。

あなたがonLoadを選択しているため、JavaScriptのは、このようなページに注入されています。あなたが見ることができる

window.addEvent('load', function() { 
    function display_message(){ 
     alert("woohoo!"); 
    } 
}); 

として、display_messageはその匿名関数内のみアクセス可能です。この例を使用するには、onLoadno wrap (head)またはno wrap (body)(ページの左側)に変更します。

の作業例:@Rocketが指摘したようにhttp://jsfiddle.net/NZnN2/8/

+3

つまり、スコープの問題 –

+2

...ですので、サイドでドロップダウンを変更する必要があります。 – SLaks

3

代わりの

function display_message() { 
    alert('woohoo!'); 
} 

display_message = function() { 
    alert('woohoo!'); 
} 
+0

どのブラウザをお使いですか? (Google Chromeで、これは動作しています) – Keil

+0

@BenniKa:そうではありません。変数をグローバルにするため、インラインハンドラにアクセスできるようになります。 –

+0

@BenniKa:まあまあです。 'display_message ='の前に 'var'がなければ、それはグローバル変数になります。 –

関連する問題