- 締切済み
prototype.jsのAjax.Requestでeventを引数にしたのですが
prototype.jsのAjax.Requestといつ便利な関数がありますが onComplete時の引数にeventオブジェクトを設定したらIE7では eventオブジェクトが引き継げませんでした。 たとえばこのようなメソッドで function ajax_request(url, params, method, ele1, ele2){ var nt = new Date(); var pr = params + "&nt=" + nt.getTime(); var a = new Ajax.Request( url, { method: "get", parameters: pr, onComplete: function(request){ method(request, ele1, ele2); } } ) }; ele1にeventオブジェクトを設定し、methodを実行しても デバックで、ele1.typeが何も表示されませんでした。 firefox2.0だと「click」など正しく表示もされオブジェクトが引き継がれておりました。 何が問題なのでしょうか?それともIE7ではeventオブジェクトを引き継ぐことは出来ないのでしょうか?
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- Yohjira
- ベストアンサー率66% (14/21)
回答No.1
試せる環境ではないので推測ですが、 非同期なのでeventオブジェクトが消えているのではないでしょうか。 (methodが呼ばれる前にajax_requestの処理が終了しているので) 同期をとる(asynchronousを指定)ようにしてみたら動いたりしないでしょうか。 (でもFirefoxだと動いているんですよね・・・)
お礼
回答、ありがとうございます。 Ajax.Requestを同期処理(optionでasynchronous:"false")にしたのですが結果変わらずでした。 エレメントの必要なmethodだけを変数に代入しておく方法で対応できそうです、ありがとうございます。