2013-03-21 4 views
8

申し訳ありませんが、本当に愚かな質問はここにあります。あなたがjavascriptやjqueryに関する質問を投稿した場合、人々はしばしば「jsfiddle」を作成します。jsfiddleの関数をテストする

だから私はしました。私の質問はdivをjqueryを使ってスライドさせることですが、jsfiddleで実行するための基本的なjavascript関数を取得することすらできません。

http://jsfiddle.net/ubq6E/

<div onclick="showit()">Hello</div> 
function showit() 
{ 
alert('hi'); 
} 

のdiv、JavaScript関数を呼び出すために、それをクリックして、しかしjsfiddleは、関数が定義されていないと言います。あなたはjsfiddleでこれを行うことはできませんか?

+2

のいずれかを選択します。http://jsfiddle.net/ubq6E/1/ –

+2

左側の第2の選択ボックスを参照してください。手の側、上部に?また、結果フレームのソースを調べることで、いくつかの洞察を得ることができます。詳細については、ドキュメント(http://doc.jsfiddle.net/basic/introduction.html#fiddle-settings-sidebar)を参照してください。 –

+0

両方ともありがとう - 私がこの樹皮をあきらめた頃だと思った。 –

答えて

8

jsfiddleでデフォルトのonLoadオプションを選択しました。

これにより、コード全体がコールバック関数内にラップされます。つまり、showit関数はDOM0インラインイベントハンドラで必要なグローバル関数ではありません。

いくつかの回避策は好みの私の個人的な順序で、あります

  1. DOM0インラインハンドラを使用していない、彼らはが本当に古い学校だ - 代わりelement.addEventListener()を調べてから、あなたのマークアップを分離あなたのJS。

  2. window.showit = function() { ... }を使用して、代わりにグローバル名前空間に機能を表示させます。

  3. はい、JSが含まれている変更「ノーラップ」オプション

+0

はい! javascriptウィンドウのJavascriptボタンをクリックし、No Wrap in Inheadを選択します。 –

関連する問題