ここにフィドルがありますが、「onmouseout」イベントで関数が呼び出されない理由がわかりません。 http://jsfiddle.net/foreyez/Xf6LW/
何か案は?
ここにフィドルがありますが、「onmouseout」イベントで関数が呼び出されない理由がわかりません。 http://jsfiddle.net/foreyez/Xf6LW/
何か案は?
これは、onLoad オプションが選択されている場合、JavaScript パネルで作成する関数がグローバルではないためです。JavaScript は関数にラップされます。
それらをグローバルにしたい場合は、j08961が提案したことを行う必要があります。そのドロップダウンをラップなし(ボディまたはヘッド)が機能しないように変更します
最善の解決策は、HTML からイベント ハンドラーを設定しないことです。これはとにかく悪い習慣です。そうすると、グローバル関数に依存したり、HTML と JS を混在させたりすることはありません。
<div id="myDiv">
</div>
document.getElementById('myDiv').onmousemove = function() {
alert('here');
}
補足: myFunc が undefined であるか、またはそのようなものであるというコンソールのエラーに気付いたはずです。
ドキュメントの head (または要素が DOM にある後の本体) に関数を配置するだけで十分です。
jsfiddle の原因だと思います。HTML の後にすべての JavaScript を宣言します。HTML が実行されて amyFunc
を探しますが、見つかりません。次に、JS をロードしますが、実行すらしません。
myFunc をグローバル関数として作成します。
firebug を使用してコードを検索し、次の生成コードを取得しました。
window.addEvent('load', function() {
//window.myFunc makes myFunc as a global function
// It can be accessed from any were inside current window.
window.myFunc = function myFunc(x)
{
alert('yo');
}
// function below is not available gloably.
function myFunct1(){
alert('yo1');
}
});
jsfiddleを参照してください
ここで変更を確認できます: jsfiddle.