-3

jQueryの仕組みを理解しようとしています。たとえば、アンカー タグがクリックされたときに何かを実行したいとします。以下のコードを例にとります。

$('.selector').click

参照 jQuery では、"$"jQuery はどのよう('.selector')にして DOM を検索して検索する必要があることを認識しているのでしょうか? では、jQuery はどのようにし"click"て、一致した要素に対して次のメソッドを実行することを自動的に認識するのでしょうか?

4

2 に答える 2

4

$関数です。あなたはそれに('.selector')引数を渡しています。それが、何を取得するかを知る方法です。

jQuery次に、見つかった DOM 要素が取り込まれたオブジェクトを返します。その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;
}
于 2013-09-24T17:47:17.747 に答える
0

基本的に、選択された要素でそのイベントのイベント ハンドラーを登録します。イベント ハンドラーは、ブラウザーが処理するものであり、クリックを登録するときにハンドラーを呼び出します。JQuery は、よりユーザーフレンドリーな方法でセットアップするだけです。

click()また、とは異なる点にも注意click(function(){})してください。1 つ目は、アイテムをマウスでクリックしたかのように実際にクリックを呼び出します。2 つ目は、実際には、クリックが実行されたときに関数を呼び出すイベント ハンドラーです。

于 2013-09-24T17:47:08.527 に答える