是什麼區別:...將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);' –