2014-06-17 51 views
-6

是什么区别:...将onmousedown事件添加到纯JavaScript中的文档中?

$(document).mousedown(someFunction); 

document.addEventListener('mousedown', someFunction, false); 
+5

“如何使用纯JavaScript实现jQuery $(document)对象?”这绝对没有意义。如果你想要一个jQuery对象,如果不使用jQuery函数,你还有什么可以获得的呢? – BoltClock

+5

'我注意到它不是等价的'它以哪种方式不是? –

+1

这两件事* *是等价的。实际上,jQuery在内部使用['addEventListener'](http://james.padolsey.com/jquery/#v=1.10.2&fn=jQuery.event.add)来绑定事件。附:在执行'addEventListener'时(这只对IE的'attachEvent'需要)失去''on''。它应该是'document.addEventListener('mousedown',someFunction,false);' –

回答

5

$(document)是一个jQuery对象,而document是一个DOM对象。

只有在加载jQuery后,jQuery才允许您使用$()语法作为jQuery对象与文档进行交互。如果没有加载jQuery,就没有办法把它当作jQuery对象,因为这种类型的对象没有定义。

单独使用document可以做很多事情,其中​​HTML和JavaScript是主要的,但是如果您想要jQuery功能,您必须包含它。

奇妙的document$(document)引物可以找到here

要回答粗体显示的问题(如何使用纯JavaScript实现一个jQuery的$(document)对象):

你将不得不重新编写的JavaScript jQuery的功能。这是不值得的努力,但绝对有可能。

而且,为解决编辑:

<script language="javascript"> 
    document.onmousedown = myMouseDownHandler; 

    function myMouseDownHandler() { 
     alert("A mouse down event took place within the document!"); 
    } 
</script> 

正如@cookie_monster提到的,如果你想使用document.addEventListener()使用mousedown代替onMouseDown;没有“开”,也没有特殊的大写字母。

jsFiddle

+0

我怀疑OP是否理解'$()'语法实际是什么。你听起来有点像它只是jQuery中的某种独特的JavaScript语法。也许你应该具体解释发生了什么。 –

+0

据我所知'$()'是一个将jQuery函数添加到对象的包装器。我发布的CodeAcademy链接应包含更多细节。 – Gavin42

+0

这是一个包装?不,这不是它*的*。 –

相关问题