2014-10-27 30 views
1

我正在学习JavaScript,我有一个问题给你们。问题在于,我试图围绕一些事件处理程序进行讨论,但是在这样做的时候,我意识到有些事情我不了解节点。JavaScript中的节点

我有this code当我使用jQuery的工作正常:

var canvas = $('#cvs'); 

canvas.mousemove(function(e){ 
    var pageCrds = '('+ e.pageX +', ' + e.pageY +')'; 

    var b = document.getElementById("first"); 
    b.firstChild.nodeValue = "(e.pageX, e.pageY) - "+ pageCrds; 
}); 

this code不工作:

var canvas = document.getElementById('cvs'); 

canvas.mousemove(function(e){ 
    var pageCrds = '('+ e.pageX +', ' + e.pageY +')'; 

    var b = document.getElementById("first"); 
    b.firstChild.nodeValue = "(e.pageX, e.pageY) - "+ pageCrds; 
}); 

,我现在用的就是在这两种情况下是相同的HTML:

<canvas id="cvs" width="150" height="150"></canvas> 
    <div id="first">Move mouse over canvas.</div> 
     <p id="one"></p>  
     <p id="two"></p> 

任何人都可以阐明为什么jQuery版本的作品而不是纯粹的JavaScript?很显然,我希望能够在纯JavaScript和jQuery中完成我的任务。

回答

4

当不使用jQuery,你需要使用onmousemove

canvas.onmousemove = function(e){ 
    var pageCrds = '('+ e.pageX +', ' + e.pageY +')'; 

    var b = document.getElementById("first"); 
    b.firstChild.nodeValue = "(e.pageX, e.pageY) - "+ pageCrds; 
}; 
+0

或更好的'addEventListener()'。 – Sirko 2014-10-27 17:28:34

+0

是'addEventListener()'是推荐的方法。我刚刚发布了一个最小改变修复。 – techfoobar 2014-10-27 17:29:17

+0

真的那么简单吗?无论如何,谢谢你们! – ljnissen 2014-10-27 17:30:49

1

功能canvas.mousemove()是jQuery的,你必须使用非jQuery的等价canvas.onmousemove = function(e){}canvas.addEventListener("mousemove", function(e){}, useCapture);useCapture值将替换处理程序的返回值,并确定事件是否继续“冒泡”。

+0

。谢谢! – ljnissen 2014-10-27 17:34:31