5

すべての jQuery 関数と、ブラウザーによってネイティブに提供される API の同等の関数を含むドキュメントを探しています。

場合によっては、特定の jQuery 関数 ( .detach().insertAfter().on()、...) だけが必要で、そのためだけに jQuery をロードします。

私は自分の jQuery への依存をやめたいと思っています。jQuery から非ライブラリへのトランスレーターは、私を大いに助けてくれます (そして、多くの人がそうだと思います)。

Webのどこかにこのようなものはありますか?

編集 :

私はそれを見つけました: http://youmightnotneedjquery.com/

4

4 に答える 4

6

これらの jQuery 関数は、jQuery オブジェクト $(SELECTOR) を取得した後にのみ呼び出します。jQuery セレクター コードが不要で、(おそらく) HTML DOM 要素を受け取る関数だけが必要な場合は、jQuery ソース コード ( http://code.jquery.com/jquery- latest.js )、依存関係とサイズと複雑さだけで、これは骨の折れるプロセスになる可能性があります。

JS に相当するもの:

.detach - .removeChild

var par = elm.parentNode;
par.removeChild(elm);

.insertAfter - .insertBeforeライブラリを使用せずに JavaScript で挿入 After() を行う方法は?

function insertAfter(referenceNode, newNode) {
    referenceNode.parentNode.insertBefore(newNode, referenceNode.nextSibling);
}

.on - addEventListener / attachEvent

if(elm.addEventListener)
    elm.addEventListener(EVENT_NAME, function() {}, false);
else
    elm.attachEvent('on' + EVENT_NAME, function() {});

ハンドラーが特定のオブジェクトへの THIS 参照を持つようにイベントをバインドする場合は...

function bind( scope, fn ) {
    return function () {
        fn.apply( scope, arguments );
    };
}
if(elm.addEventListener)
    elm.addEventListener(EVENT_NAME, bind(SCOPE_OBJECT, function(){}), false);
else
    elm.attachEvent('on' + EVENT_NAME, bind(SCOPE_OBJECT, function(){}));
于 2013-01-09T14:24:27.987 に答える
2

同じレガシー サポートも探している場合は、いいえ、次のような多くの理由でそのようなものはありません。

  1. jQuery はそのメソッドの多くを内部で再利用するため、単一の独立した API 呼び出しを見つけるのは困難です。
  2. jQuery は多くの場合、レガシー サポートのフォールバックを適用する前に、ブラウザーがメソッドをネイティブにサポートしているかどうかを複数のサポート チェックで確認します。同じことをする必要があります。

ただし、 github: https://github.com/jquery/jqueryでソース コードを参照することで、単一のメソッドを引き出して正しいバニラの実装を作成できる場合がありますが、かなり時間がかかります。

とはいえ、多くの dom 操作は非常に単純であるため、クラスの追加など、そもそも jQuery は必要ありません。

elem.className += 'class'

しかし、jQuery のリバース エンジニアリングは、jQuery の依存関係を取り除く賢い方法ではありません。

于 2013-01-09T14:23:19.017 に答える
1

jQuery のソース コードをお探しですか?

http://docs.jquery.com/Source_Code

于 2013-01-09T14:18:53.860 に答える
0

私は一度も見たことがありません。JQuery はブラウザーのさまざまな違いに対処するため、単純なコマンドで通常記述することを JQuery で記述するには、プレーンな古い JavaScript でかなり多くのコードが必要になる場合があります。

そう考えると、jQuery への依存から抜け出し、JavaScript 固有のメソッドについてもっと学びたいと思うのは素晴らしいことだと思います。

コード ビハインド JQueryを見ると、作業を開始するのに役立つ場合があります。それ以外の場合は、特定の質問があるときにこのサイトに戻ってみませんか. .detach()ここにいる人たちは 、.insertAfter()、などについて教えてくれると思います.on()が、それぞれに個別の質問と、最初に何をしようとしているのかについての説明が必要になるでしょう。

これが役立つことを願っています(または少なくとも励みになります).

于 2013-01-09T14:25:08.110 に答える