3

重複の可能性:
誰かがこのjQueryコードを説明できますか?

私は以前にこれを投稿しましたが、私の質問を洗練したいと思います(そして私は古いスレッドではそれを行うことができないようです)。

コードは次のとおりです。

$(document).ready(function()
    {
            var rot=$('#image3').rotate({maxAngle:25,minAngle:-55,
            bind:
                    [
                            {"mouseover":function(){rot[0].rotateAnimation(85);}},
                            {"mouseout":function(){rot[0].rotateAnimation(-35);}}
                    ]
            });
    });

http://wilq32.googlepages.com/wilq32.rollimage222から取得し、機能のデモもあります(画像の回転をアニメーション化する-ページの3番目のデモ)。

説明が必要なこと:

  1. 変数が宣言されていることは理解しています-" rot "ですが、宣言がどこで終了するのか理解できないようです...。

  2. 変数が使用されるとき、それはrot [0]として使用されます、 [ 0]は何を表しますか?これは配列ですか?

  3. 私はそのようにバインドが使用されるのを見たことがありません、元の構文は

    $( "selector")。bind(type、[data]、fn);

では、何が起こっているのでしょうか。すべてのコンマと[]については何ですか?

  1. 最終的には、このスクリプトを使用して、「Y」要素がクリックされている間に画像「X」を回転させたいと思います。これはどのように行うことができますか(できれば「バインド」なしで)?

ありがとう!

4

4 に答える 4

4

基本的な構文上の問題は、ここで他の人によって非常によく説明されていると思います...

の面では:

最終的には、このスクリプトを使用して、「Y」要素がクリックされている間に画像「X」を回転させたいと思います。これはどのように行うことができますか(できれば「バインド」なしで)?

これを試して:

var x=$("#imagex"); //<-- image to be rotated
var y=$("#elemy"); //<-- element to be clicked
var angleOfRotation=45; //<-- angle of rotation

y.bind("click",function(){
  x[0].rotateAnimation(angleOfRotation);
});
于 2009-12-15T21:16:17.440 に答える
2

宣言は最後から2番目のセミコロンで終了します。参照はキャプチャされ、渡されたコールバック関数の実行中にかなり後で使用されます。

rotはjQueryオブジェクトであり、配列ではありませんが、1つのようにインデックスを付けることができます。

rot[0]セレクターに一致する最初のDOMオブジェクト#image3、つまりIDimage3のオブジェクトです。

bindこの場合、は関数bindではなく、rotateに渡されるオプションの一部です。

角かっこ[foo, bar]は、fooとbarのリテラル配列を示します。中括弧{foo: "foo"、bar: "bar"}は、プロパティfooおよびbarを持つリテラルオブジェクトです。

于 2009-12-15T19:19:15.493 に答える
1
  1. 宣言は最初のセミコロンで終了します。rot返される値が割り当てられます(この場合、 jQueryのメソッドチェーン構文rotate()により、の結果と同じになります)。と次の間のすべては、に渡される引数です。$('#image3')rotate()rotate()

  2. はい、[0]アレイアクセスです。rot[0]配列の最初(「0番目」)の項目を参照しrotます。

  3. ここに、「オブジェクトリテラル」、つまり、、、、およびのプロパティを{ maxAngle:25, minAngle:-55, bind: ... }持つオブジェクトの構文があります。このオブジェクトを変数に割り当てた場合(rotate()の引数として渡すのではなく)、、、、などのプロパティにアクセスできます。この場合は関数ではなく、オブジェクトのプロパティの名前にすぎません。maxAngleminAnglebindmyObjectmyObject.maxAnglemyObject.minAnglemyObject.bindbind

于 2009-12-15T19:20:42.977 に答える
0

わかりました、不足している部分-これは、上記のコードを使用して別の要素による回転をトリガーする方法です:

var itemYouWannaRotate = $("#imageToRotate").rotate(0);
$("#TriggerElement").click(function(){
    itemYouWannaRotate[0].rotateAnimation(90);
});

みんなありがとう、あなたの答えはすべて大きな助けになりました。

于 2009-12-20T09:57:28.983 に答える