是什么区别:...将onmousedown事件添加到纯JavaScript中的文档中?
$(document).mousedown(someFunction);
和
document.addEventListener('mousedown', someFunction, false);
是什么区别:...将onmousedown事件添加到纯JavaScript中的文档中?
$(document).mousedown(someFunction);
和
document.addEventListener('mousedown', someFunction, false);
$(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
;没有“开”,也没有特殊的大写字母。
我怀疑OP是否理解'$()'语法实际是什么。你听起来有点像它只是jQuery中的某种独特的JavaScript语法。也许你应该具体解释发生了什么。 –
据我所知'$()'是一个将jQuery函数添加到对象的包装器。我发布的CodeAcademy链接应包含更多细节。 – Gavin42
这是一个包装?不,这不是它*的*。 –
“如何使用纯JavaScript实现jQuery $(document)对象?”这绝对没有意义。如果你想要一个jQuery对象,如果不使用jQuery函数,你还有什么可以获得的呢? – BoltClock
'我注意到它不是等价的'它以哪种方式不是? –
这两件事* *是等价的。实际上,jQuery在内部使用['addEventListener'](http://james.padolsey.com/jquery/#v=1.10.2&fn=jQuery.event.add)来绑定事件。附:在执行'addEventListener'时(这只对IE的'attachEvent'需要)失去''on''。它应该是'document.addEventListener('mousedown',someFunction,false);' –