2013-09-24 72 views
-3

我一直在試圖理解jQuery是如何工作的。比方說,假設您想在點擊錨標籤時執行某些操作。採取下面的代碼,例如:如何在JavaScript中自動調用一個函數,如jquery

$('.selector').click 

"$"引用的jQuery但隨後如何jQuery的知道,它應該尋找和發現在DOM ('.selector')?那麼jQuery如何自動知道如何在匹配元素上運行以下方法"click"

+4

jQuery是免費的軟件......你爲什麼不下載它並研究它......? –

+3

您的標題不符合您的問題時的jQuery代碼 –

+0

看https://github.com/jquery/jquery – Pietu1998

回答

4

$是一個函數。您傳遞的是('.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; 
} 
+0

jsFiddle演示:http://jsfiddle.net/Z5KCb/ – user2736012

0

它基本上爲所選元素註冊該事件的事件處理程序。事件處理程序是瀏覽器處理的事情,它在註冊點擊時調用處理程序。 JQuery只是以更友好的方式設置它。

另請注意click()不同於click(function(){}),第一個實際上調用點擊,就好像您只是鼠標點擊該項目,第二個實際上是一個事件處理程序,在執行單擊時調用您的函數。

+0

不知道你真的明白這個問題。他不想知道這是幹什麼的,他想知道它的作用。 – Barmar

相關問題