2009-07-29 11 views
1

私はいくつかの非常に基本的なjqueryコードを扱っています。私が行ったことを、渡されたパラメータとともに1つの関数に凝縮したいと思います。JQuery、Passing Parameters

私はこれらのいくつかを持っている:

$(".about").hover(function() { 
    $(this).attr("src","_img/nav/about_over.gif"); 
     }, function() { 
    $(this).attr("src","_img/nav/about_off.gif"); 
}); 


$(".artists").hover(function() { 
    $(this).attr("src","_img/nav/artists_over.gif"); 
     }, function() { 
    $(this).attr("src","_img/nav/artists_on.gif"); 
}); 


$(".help").hover(function() { 
    $(this).attr("src","_img/nav/help_over.gif"); 
     }, function() { 
    $(this).attr("src","_img/nav/help_off.gif"); 
}); 

しかし、明らかに、私は繰り返しを減らすことができるように画像(「約」、芸術家」、 『ヘルプ』)のタイトルを渡したいですコード。

すべてのヘルプははるかに高く評価。

おかげ

ロニー

+1

あなたはCSSを試してみましたか? – Jason

+0

はい、ありがとう、私はCSSを試してみました。 – rnnbrwn

答えて

3
function hover(img) { 
    $("."+img).hover(function() { 
    $(this).attr("src","_img/nav/"+img+"_over.gif"); 
     }, function() { 
    $(this).attr("src","_img/nav/"+img+"_off.gif"); 
    }); 
} 
+0

'$(class_name)'を '$("。 "+ class_name)に変更する必要があります。 – Sean

+0

良い点。一定。 –

+0

これは、src属性を2回変更するだけです。そのため、最初のステートメントを効果的にレンダリングできません。 _off.gifにコールバック関数を使用する必要があります。私の答えを見てください。 –

0

私はホバー機能で第二の機能で何が起こっているかわからないんだけど、あなたはこのような何かを行うことができます。

$(".about .artists .help").hover(function(){ 
    $(this).attr('src','_img/nav/' + $(this).attr('class') + '_over.gif') 
}); 

あなたもあなたのオン/オフのGIFに同じ原理を適用することができます。

+0

は、私はこの1つを使用しますが、私は $( "について.artistsの.help ")を変更することで、それを固定 に$("。程度、.artists、.help")あなたの助けのための おかげで、みんな。 – rnnbrwn

+0

これを答えとして選択します。 – pal4life

1

あなたはこのようなものができます。

function ElementHover(class_name, src_over, src_off) { 
    $("."+class_name+"").hover(function() { 
     $(this).attr("src", src_over); 
     }, function() { 
     $(this).attr("src", src_off); 
    }); 

} 
1
function HoverPic(name){ 
    $("."+name).hover(function() { 
     $(this).attr("src","_img/nav/"+name+"_over.gif"); 
      }, function() { 
     $(this).attr("src","_img/nav/"+name+"_off.gif"); 
    }); 
}