0

重複の可能性:
jQuery および Prototype イベント

私は Box2dJS ライブラリを使用していますが、それはプロトタイプを使用しているため、動作させるにはプロトタイプ ライブラリを含める必要がありました。メイン スクリプトではプロトタイプ コードを使用しておらず、Box2d オブジェクトのみがプロトタイプを使用しています。スクリプトで JQuery を使用しています。プロトタイプを含めたため、jQuery イベントが発生していないようです。

関連するJSコードは次のとおりです。

$.noConflict();

jQuery(document).ready(function(){
init();
});

function init(){

//add event handler to surrounding DIV to monitor mouse move and keystrokes
jQuery("#container").keypress(function(e){
    keys[e.keyCode] = true;
    alert("key pressed!");
});
jQuery("#container").keydown(function(e){
    keys[e.keyCode] = true;
});
jQuery("#container").keyup(function(e){
    keys[e.keyCode] = true;
    alert("Key released!");
});
}

そして、ここにhtmlコードがあります:

<html>
<head>
    <title>Box2D Test</title>
    <!--[if IE]><script src="lib/excanvas.js"></script><![endif]-->
    <script src="lib/prototype-1.6.0.2.js"></script>
    <!-- box2djs scripts here-->
</head>
<body>
    <center>
        <div id="container" style="border:1px solid; cursor:none; width:600px; height:400px;">
            <canvas id="canvas" width="600" height="400" >
                Could not create Canvas!
            </canvas>
        </div>
        <script type="text/javascript" src="jquery-1.6.2.min.js"></script>
        <script src='js/box2dutils.js'></script>
        <script type="text/javascript" src="main.js"></script>
    </center>
</body>
</html>

アラートは発生しませんが、prototype (および box2d) ライブラリを削除すると、すべて問題なく動作します。どうすればこれを修正できますか?

4

2 に答える 2

1

提供したコードのスニペットから、jQuery ライブラリの前に box2dutils ライブラリのロードを並べ替えたい場合があります。box2dutils がイベントをハイジャックしているか、jQuery と競合している可能性があります。

于 2011-07-10T21:53:46.697 に答える
0

相互に互換性がない可能性が非常に高いですが、両方を使用する必要がありますか?

于 2011-07-10T21:47:38.297 に答える