2011-08-09 23 views
2

私のページのすべての画像を選択し、mouseoverイベントに関数を追加したいと思います。ここに私がこれまで持っていたものを示すjsFiddleがあります。 JavaScriptセクションの一番下には、同じコードを各画像に対して2回ずつ実行していることがわかります。 .each()関数をここで使うことができるはずですが、私はそれをやろうとしましたが、それを動作させることはできません。 FYIjQueryセレクターとバグ

$("#gen").one('mouseover', function() { runTransfer('gen'); return false; }); 
$("#bo").one('mouseover', function() { runTransfer('bo'); return false; }); 

、バグは私が解決しようとしている(別のコードの一部)...しかし、一つだけ疑問にここにもあります:ここで私は1つに変身したい2つの重複呼び出しがあります時間。 :)

+0

FYIの代わりに**コールバック関数を '.effect'に渡すのではなく**実行中です**。 –

答えて

3

文字通り、あなたの質問に答えるために、あなただけのmultiple selectorを使用することができます。ここでは

$("#gen, #bo").one('mouseover', function() { 
    runTransfer(this.id); 
    return false; 
}); 
+0

私が探していたものではありませんが、機能しています。 :) –

0

イメージにクラスを与えてクラスを選択できますか?

HTML:

<img class="addEventToMe" src="..." alt="..."/> 

のjQuery:

$(".addEventToMe").each(function(elm) { 
    elm.one('mouseover', function() { runTransfer('gen'); return false; }); 
} 
+0

各画像にはすでにクラスがあり、それはそれを上に配置しています(つまり、コードを '$"ページ。自分のイメージにはそれぞれユニークなクラスが必要なので、私はあなたの提案を使うことはできないと思います。 –

+0

あなたの画像には一意のクラスが1つだけ割り当てられていますか? id属性の目的はそうではありませんか? – Beez

+0

多分...私はCSSの専門家ではありません。 :)イメージはx/y座標でページ上に絶対配置される必要があり、このためにCSSクラスを使用していました。 –

0

は、トリックを行うにはいくつかのコードです:

$.each(['gen','bo'],function(i,id){$('#'+id).one('mouseover',function(){ 
    runTransfer(id); 
})})