2012-04-18 14 views
1

私は自分のサイトに「飛び越えて」効果を使用しています。 Like this - 水平効果。jQueryとIE7のIDの問題

スクリプトはIE8,9、FF、Chromeで治療を受けます。 IE7では、ページに複数の要素があります。どちらも同じIDです。ページの最初の項目にカーソルを合わせると、ロードされます。他のものを乗り越えると、まったく動作しません。私にとっては意味がない。

次のように私のコードは次のとおりです。

HTML

<div style="margin-bottom:30px;" id="takealook-sub"> 
      <a href="#"> 
       <img style="left: -200px;" alt="" src="path/to/image"> 
      </a> 
</div> 

jQueryの

$(function(){ 
     $("#takealook-sub a").hover(function(){ 
      $("img", this).stop().animate({left:"0px"},{queue:false,duration:600}); 
     }, function() { 
      $("img", this).stop().animate({left:"-200px"},{queue:false,duration:600}); 
     }); 
    }); 

誰にも1がIE7でうまくいく理由を知っているのではなく、他の?私が言うように、他のすべてのブラウザではすべてがうまくいくようです。

おかげ

答えて

4

あなたはは、単一のドキュメント上の重複id秒を持つことはできません....クラスを使用する代わりに、class ... see the v4.0.1 HTML specs herev5 HTML specs here

例を使用します。

<div style="margin-bottom:30px;" class="takealook-sub"> 
    <a href="#"> 
     <img style="left: -200px;" alt="" src="path/to/image"> 
    </a> 
</div> 
<div style="margin-bottom:30px;" class="takealook-sub"> 
    <a href="#"> 
     <img style="left: -200px;" alt="" src="path/to/image"> 
    </a> 
</div> 

あなたは好きなだけ多くを持つことができます。これを行うことができます:

jQueryのセレクタ .
$(function() { 
    $(".takealook-sub a").hover(function() { 
     $("img", this).stop().animate({ 
      left: "0px" 
     }, { 
      queue: false, 
      duration: 600 
     }); 
    }, function() { 
     $("img", this).stop().animate({ 
      left: "-200px" 
     }, { 
      queue: false, 
      duration: 600 
     }); 
    }); 
}); 

代わりid S

+0

ため#のクラスのプレフィックスと[HTML5仕様(http://www.w3.org/TR/html5/global-attributesあります。 html#the-id-attribute)。 – kapa

+2

@bažmegakapaありがとう..リンクで更新された回答:-) – ManseUK

+0

すごく、私は複数のIDが問題になるかもしれないと感じました。それはIE7が最も適合するブラウザであることを示していますか;-)?ハハ – StuBlackett