0

私は現在、jsの本でJSを学んでいます。ロールオーバー効果の例で私は得られたので、助けが必要です。

Flickr.comにスナップショットをアップロードします。URLは次のとおりです:http ://www.flickr.com/photos/58745632@N05/5389380030/

スナップショットの左側はページで、スナップショットの右側はjavascriptコードです。私の質問は、赤いボックスのコンテンツを緑のボックスのコードに変更できますか?可能であれば、なぜ作成者はこの行「thisLink.imgToChange = thisImage」をわざわざ追加するのですか?そして、 「thisLink.imgToChange」と 「thisImage」 の関係は何ですか? それらは同じものですか、それとも同じものですか?誰かが私にそれを説明してもらえますか?どうもありがとうございます。

4

3 に答える 3

0

thisImage画像オブジェクトへの参照です。関数に変数として渡されています。

画像オブジェクトには、ソース(.src)、.widthなどのプロパティがあります。高さなど

thisLinkもオブジェクトであり、プロパティを持つこともできます。したがって、thisLink.imgToChange = thisImage「imgToChange」を関数に入力された画像に設定します。imgToChangeプログラマーが選択した完全に任意のプロパティです。後で使用されるいくつかのデータを隠して使用されています。

このコードはすべて、ロールオーバーを実行する「難しい方法」を示しています。「document.getElementById」を何度も入力する(または使用する)必要があるのは、これらすべてが面倒です。ほとんどの場合、これらを自動化するためにスクリプトに依存しています。

フレームワークは、基本的にここで作業しているタイプのコードの最適化されたバージョンであり、汚い作業を処理するために開発されました。最も人気のあるフレームワークは、これまでのところ、jQueryです。

jQueryを使用して同じことをうまく行うことは、1行のコードで行うことができます。

例として別の投稿があります。

于 2011-01-26T04:20:25.300 に答える
0

短い答え:

.imgToChangethisImg同じ場所を参照してください。.imgToChangeはプロパティとして追加されるため、関数のように後で簡単に使用できonmouseoutます。

アップデート

あなたのコメントについて:それはどちらの方法でも機能しません(おそらく)。

は複数回呼び出されるためsetupRollover()、変数は呼び出されるthisImageたびに異なる画像ノードを指します。緑のボックス内のコードは、最新のにのみ適用されthisImageます。

赤いボックスはthis、「イベントを発生させたオブジェクト」を意味するために使用します。赤いボックスは、適切な画像を参照するように各オブジェクトを設定します。次に、thisをマウスで押すと、正しい画像が変更されます。

自分で試してみてください。説明するよりも見やすいです。

于 2011-01-26T04:51:13.743 に答える
0

これはJavaScriptとAjaxforthe Web:Visual QuickStart Guide、第7版1から直接のものであるとすると、96〜97ページの(行ごとの)説明で特に問題になっていることは何ですか?

1私が共同執筆した、ところで。

于 2011-03-08T02:57:36.783 に答える