4

プラグインのコードを見ると、コードの80%を理解できませんでした。私はいくつかのjqueryも知っていて、それで成功していますが、プラグインで行ったことを行う方法を見つけることができませんでした。

通常、私が10行で実行するコードは、いくつかのショートカットを実行し、高度なメソッドを使用して1つで終了します。

たとえば、これはjqueryfileuploadプラグインのコードです

 // Callback for uploads start, equivalent to the global ajaxStart event:
            start: function (e) {
                var that = $(this).data('fileupload');
                that._transition($(this).find('.fileupload-progress')).done(
                    function () {
                        that._trigger('started', e);
                    }
                );
            },

一体何が起こっているのか、なぜ関数名がアンダースコアで始まるのかわかりません。何が行われているのか、そしてそのすべて。

コードを減らすことができるように、例で完全に説明されているそのようなものを見つけることができる場所

4

1 に答える 1

2

これが私がそれを理解する方法です:

startコメントが言うように、コールバック関数ですCallback for uploads start, equivalent to the global ajaxStart event

var that式です。に:

jQuery.data(element、name、value)によって設定された、要素の名前付きデータストアの値、または要素の完全なデータストアを返します。

変数thatが設定されている場合、名前付きの関数の呼び出しがあります。_transitionこれは、後で関数を呼び出すときに、Ajax呼び出しの拡張であると思いdoneます。おそらく作者が作品を所有しているので、コードを検索する必要があります。

$(this).find('.fileupload-progress')この関数は、セレクターによって返されるパラメーターオブジェクトリストとして取得されます。

最後に、done私が推測する関数を式と呼びます。jQuery.ajax()。done()に、成功したAjaxリクエストの後に呼び出されます。完了した内部には、匿名関数の別のコールバックがあります

.done(function(){
    ....
}) 

_trigger文字列startedとメイン関数startのコールバックイベントで呼び出される別の関数が起動された場合e

そしてあなたの最後の質問に答えてください:

Where i can find that sort of stuff fully explained with examples so that i can also reduce my code?

真実は、自分のものを書かなければ、おそらくそれを学ぶことは決してないだろうということです。ここで重要なのは経験とコーディングです。特定の解決策を検索することで、たとえばこのような新しいものを見つけることができます。だから、仲間をコーディングし続けてください!

于 2012-10-15T09:05:59.717 に答える