2010-11-28 9 views
0

「mu」と呼ばれるユーザーは、私が本当に好きな次の回答を私に提供します。 しかし、私はここにいくつかの質問があり、私は誰も私を助けることができることを願っています。次を考える

function() { 
     var $this = $(this); 
     $this.data('orig', $this.html()).html('<a href="blabla.org">go here</a>'); 
    }, 
    function() { 
     var $this = $(this); 
     $this.html($this.data('orig')).removeData('orig'); 
    } 

1) 我々が必要としているか、そしてそれが何をするのか理由: のvar $これは$(this)を= - 私たちは$を(使用できないのはなぜこれ)はどこにでもありますか?

2)なぜ「orig」が必要なのですか?

可能な限り詳細を提供してください、本当に、私はこのすべてにおいて全く新しいです。事前に

どうもありがとう、 MEM

答えて

3

ではなく$(this)$thisを使用する必要はありませんが、それは速くなります。コールを$(this)に1回実行し、呼び出しを何度も繰り返す代わりに変数に結果を格納しています。 $thisは、変数の名前だけである一方で$(this)は、パラメータとしてthisの値を持つ関数$への呼び出しであることを

は注意してください。関数呼び出しは、thisが参照する1つの要素のリストを含むjQueryオブジェクトを返します。そのため、変数に格納されているものがあります。

文字列'orig'は、格納するデータの識別子です。 dataメソッドを使用して保存する各情報には識別子が必要です。

+0

また、jQueryには非常に素晴らしいAPIドキュメントがあります。[jQuery API](http://api.jquery.com) –

+1

@krof:私はそれほど同意できませんでした。私はそれらのドキュメントを本当に嫌いです。多くの情報...はい...しかし、執筆と解説...そして情報アーキテクチャがそこに置かれた方法... arrhg。それでも、私はもちろんそれを読む必要があります。例:http://api.jquery.com/jQuery.data/(なぜ私はほとんど同じ情報を2回必要とするのか分かりません)。乾杯。 – MEM

1

どこでも$(これ)を使用できますが、要素をjQueryオブジェクトに変換する際にオーバーヘッドが常に発生するため、チェーン内ではなくjQueryオブジェクトを複数回使用することがわかっている場合それを変数として格納して、毎回jQuery変換のオーバーヘッドが発生しないようにする必要があります。

origの部分は、ノードの元の内容を格納するだけなので、終了後に元の状態に戻すことができます。変数に格納するのと同様ですが、スコープについては心配する必要はありません。

2

あなたはjQueryを使用していると仮定します。後で使用する場合には値を取得するための関数を呼び出していないよう

var $this=$(this) 

がちょうど($この呼ばれる)変数にjQueryの関数の値を入れ、少し時間を節約できます。

jQueryオブジェクトは、データを保持するために "data"プロパティを使用します。これはキー/タイプのプロパティです。そのような線のように

$(this).data('orig', whatever); 

は、データプロパティに "orig"と呼ばれるキーを作成し、 "whatever"という値を入れます。

+0

データはプロパティですか? (私はそれが方法や機能だと思った)。私は、引数を受け入れるもの(通常は()構文)を持っていることを考えていましたが、メソッドや関数には直面していましたが、決してプロパティではありませんでした。私はもっ​​と読む必要があると思う... – MEM

+0

はい、あなたは正しいです。ごめんなさい。データを名前で格納および検索する機能です。私はいつもそれを財産のように行動しているので、財産と考えています。 –

関連する問題