• ベストアンサー

onloadがうまくいかない

onloadを使って、 下記HPのtoggleエフェクトのJSが適用されたボタンを押したいのですがうまくいきません。 http://demos.mootools.net/Fx.Slide 現在作成コードの一部は、 ヘッダー部から、 <script type="text/javascript">  window.addEvent('domready', function(){   //-vertical   var mySlide = new Fx.Slide('test');   $('toggle').addEvent('click', function(e){   e = new Event(e);   mySlide.toggle();   e.stop();   });  }); </script> <body onload="document.getElementById('help').click()"> <input type="button" id="help" name="toggle" value="ヘルプを表示"> <div id="test"> ヘルプ内容 </div> </body> みたいな感じで、 他にもログアウトボタンやらあるんですが、 それらのボタンは上記onloadの方法で起動できます。 なぜかJSが適用されてるボタンだけ出来ないような感じなのですが、 何か解決策はありますでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
noname#30818
noname#30818
回答No.4

<script type="text/javascript">  window.addEvent('domready', function(){   //-vertical   var mySlide = new Fx.Slide('test');   $('toggle').addEvent('click',function(e){   e = new Event(e);   mySlide.toggle();   e.stop();   }); } function aa(e){   e = new Event(e);   mySlide.toggle();   e.stop();   }; window.onload=aa; </script> addEventの内容がaddEventListenerやattachEventを使っているだけで、$と言う関数がgetElementsByTagNameでname属性が一致するものを返しているだけと言う前提で回答すれば、$('toggle')のonclickはIE6でnull、Firefox1.5でundefinedになっていると思います。 addEventで特別なことをしていなければ、document.getElementById('help').click自体もundefinedじゃないかと思います。 そこで、onload時に実行したい関数に名前を付けてonload時に実行してやれば良いかもしれません。 だた、現状でIE6で「関数を指定してください。」などのエラーが出ないのが不思議な気もします。 alert($('toggle'),onclick)が function (e){   e = new Event(e);   mySlide.toggle();   e.stop();   } と表示されるならonload="document.getElementById('help').onclick()で行けると思いますけどeがネックになりますね。 e = new Event(e); e.stop(); を削っても動くようなら新規に window.onload = function (e){   mySlide.toggle();   } と言う関数を作れば取りあえずは動くでしょうね。 eがイベントでしたらEvent(e)で何が返ってくるか調べてstop();で何をするかを調べて対処するしかないでしょう。

ktakusya
質問者

補足

返答遅くなって申し訳ありません。 やっぱり無理なようです。 e = new Event(e); e.stop();は削っても動くみたいです。 ちょっとJavascript初心者の私には難しいですね。 また何か方法があればお願いします。

その他の回答 (3)

noname#39970
noname#39970
回答No.3

書き方みたいのが有ったから 参考に http://web.paulownia.jp/script/tips/handler.html

ktakusya
質問者

補足

色々試してみましたがやっぱり動かないみたいです。 他に何かありますでしょうか? ANo.1で途切れているSAYKA様の考えたコードも試してみたいのですが・・・

noname#39970
noname#39970
回答No.2

ごめん 途中で切れちゃったけど 判るよね・・・

ktakusya
質問者

補足

ん? ちょっとわからないです・・・ まだまだ使い始めたばかりなので。 ちなみにIE用ですがFireFoxでも動けばそれにこしたことはないです。

noname#39970
noname#39970
回答No.1

function定義とaddEventを別々にやっても無理? っていうかこれIE用? function a(){} window.addEvent('domready',a

関連するQ&A

専門家に質問してみよう