【问题标题】:JQuery's key events not firing when with prototype [duplicate]使用原型时未触发 JQuery 的关键事件 [重复]
【发布时间】:2011-10-02 09:32:46
【问题描述】:

可能重复:
jQuery and Prototype events

我正在使用 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>

没有任何警报响起,但是当我删除原型(和 box2d)库时,一切正常。我该如何解决这个问题?

【问题讨论】:

  • @Nicklas A. 不是这样。我不是想从 jQuery 触发原型事件,我只是想使用 jQuery 事件。而且,这个问题甚至都没有解决。

标签: jquery prototypejs conflict key-events


【解决方案1】:

从您提供的代码的 sn-p 中,您可能希望在 jQuery 库之前重新排序 box2dutils 库的加载。可能是 box2dutils 劫持了事件或导致与 jQuery 冲突

【讨论】:

  • 不可能。 box2dutils 仅填充了调试绘图实用程序。没有别的——我自己看了看。我切换了它们以确保无论如何都没有改变。
【解决方案2】:

很可能它们不兼容,你必须同时使用它们吗?

【讨论】:

  • 如果我必须选择其中一个,我可以使用完整的原型,因为 box2djs 需要原型。但是后来我不得不重写我的很多代码并学习一个全新的 api...
猜你喜欢
  • 1970-01-01
  • 2011-06-23
  • 2011-11-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-30
  • 2017-12-27
相关资源
最近更新 更多