我一直在試圖理解jQuery是如何工作的。比方說,假設您想在點擊錨標籤時執行某些操作。採取下面的代碼,例如:如何在JavaScript中自動調用一個函數,如jquery
$('.selector').click
的"$"
引用的jQuery但隨後如何jQuery的知道,它應該尋找和發現在DOM ('.selector')
?那麼jQuery如何自動知道如何在匹配元素上運行以下方法"click"
?
我一直在試圖理解jQuery是如何工作的。比方說,假設您想在點擊錨標籤時執行某些操作。採取下面的代碼,例如:如何在JavaScript中自動調用一個函數,如jquery
$('.selector').click
的"$"
引用的jQuery但隨後如何jQuery的知道,它應該尋找和發現在DOM ('.selector')
?那麼jQuery如何自動知道如何在匹配元素上運行以下方法"click"
?
$
是一個函數。您傳遞的是('.selector')
參數。這就是它知道如何獲取。
它然後返回填充有被發現的DOM元素jQuery
對象。 jQuery
對象上有方法。
當你調用.click()
jQuery對象,它通過它的控股匹配的DOM元素迭代,並執行預期的操作。
這裏有一個非常簡單的例子。
var $ = function(selector) {
return new jQuery(selector);
}
function jQuery(selector) {
var elems = document.querySelectorAll(selector);
this.length = [].push.apply(this, elems);
}
jQuery.prototype.click = function() {
for (var i = 0; i < this.length; i++)
console.log("clicking", i, this[i].nodeName);
return this;
}
jsFiddle演示:http://jsfiddle.net/Z5KCb/ – user2736012
它基本上爲所選元素註冊該事件的事件處理程序。事件處理程序是瀏覽器處理的事情,它在註冊點擊時調用處理程序。 JQuery只是以更友好的方式設置它。
另請注意click()
不同於click(function(){})
,第一個實際上調用點擊,就好像您只是鼠標點擊該項目,第二個實際上是一個事件處理程序,在執行單擊時調用您的函數。
不知道你真的明白這個問題。他不想知道這是幹什麼的,他想知道它的作用。 – Barmar
jQuery是免費的軟件......你爲什麼不下載它並研究它......? –
您的標題不符合您的問題時的jQuery代碼 –
看https://github.com/jquery/jquery – Pietu1998