2009-08-05 10 views
0

mootoolsのmousenterのデモを使用しています。私はリンクに影響を与えようとしている私のサイトにそれを置くので、誰かがリンクを張ってリンクが別の色に消えてしまいます。私が抱えている問題は、mootoolsのコードが1つのIDだけを扱えるように設定されていることです!私はnavのためにそれを使用しているので、私は変更したい複数のIDを持っています。どのように私はそれらのすべてに影響を与えることができますか?私は配列を使用する必要があることを知っているが、私はそれを適切にコーディングするためにjavascriptでうまく行っていない。助けてください!Mootoolsのヘルプ

URLは事前にwww.portfoliobyart.com/h20

感謝です!

答えて

2

私はあなたのサイトを見ました。

$$('.nav a div').set('opacity', 0.5).addEvents({ 

はあなたのナビゲーションメニュー内のすべての項目で同じ効果を実現します:demo.jsでは、あなたは、この行これに

$('link').set('opacity', 0.5).addEvents({ 

を変更した場合。

詳細については、MooTools selectorsをお読みください。セレクタは非常に強力なツールです。

+0

おかげでたくさん!これは大きな助けとなりました。今すぐに仕事をしてください。将来の参照のために、mootoolsのセレクタページを参照してください。 – user150744

1

以下のコードは、navリンク要素のそれぞれを取り、mouseenterイベントとmouseoutイベントを追加します。

//selects all nav elements 
$$('.nav a div').each(function(el){ 
    //this is the interior of the function that will run on each el 
    //store the original bg color 
    var color = el.getStyle('backgroundColor'); 

    //now add the mouseenter and leave events w/ the morphs 
    el.set('opacity', 0.5).addEvents({ 
     mouseenter: function(){ 
     // This morphes the opacity and backgroundColor 
      this.morph({ 
       'opacity': 1, 
       'background-color': '#000000' 
      }); 
     }, 
     mouseleave: function(){ 
     // Morphes back to the original style 
      this.morph({ 
       opacity: 0.5, 
       backgroundColor: color 
      }); 
     } 
    }); 
}); 

これが役に立ちます。

+0

.each()を使うのは確かに1つのループしかないからです。もしあなたがそれを行うならば、不透明度を設定したときに配列をループし、イベントを追加するときに再びループします。 –