プロが教える店舗&オフィスのセキュリティ対策術

初心者:Ajax勉強中です。

prototype
Rico
batefx
を一つの画面で使用したいと思っています。

読み込み順はこんな感じになっています
-------------------------------------------------
<script src="prototype.js" type="text/javascript"></script>
<script src="rico.js" type="text/javascript"></script>
<script src="bytefx_OS.js" type="text/javascript"></script>
<script src="index.js" type="text/javascript"></script>
--------------------------------------------------
index.jsは
--------------------------------------------------
function k(){
dndMgr.registerDraggable( new Rico.Draggable("sample","box") );
dndMgr.registerDropZone( new Rico.Dropzone("dropbox") );
dndMgr.registerDropZone( new Rico.Dropzone("dropbox1") );
}
function start(){
bytefx.size(document.getElementById("txt_box"), {width:600, height:0}, 100);
}
function n(name,objW,objH){
bytefx.size(document.getElementById(name), {width:objW, height:objH}, 10);
}

--------------------------------------------------

最初に表示される画面ではbatefxのリサイズ処理は正常に動作します。
その後のRicoによる、Draggable、Dropzoneを実行します。
そうすると最初に動作していたbatefxのリサイズ処理が動作しなくなってしまいます。
原因を調べていてもいまいちよくわかりません。

解かる方おりましたら、是非ご教授のほどをおねがいいたします。

A 回答 (2件)

同名のfunctionがあるか、使用しているグローバル変数が競合しているか


のどちらかではないでしょうか?
    • good
    • 0

DOM操作中(HTML書換中)に競合しても駄目な場合がありますね。


片方でbodyのDOMを変更している時に別でアクセスしても蹴られるでしょうからね。
そういう場合、setTimeout等で時間差かけたり、一つの処理が終わったら次の関数を実行する、と言うような順序を明確に規定すればうまく動くかも知れません。

参考まで。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!