2011-05-09 39 views
2
$('#carat_weight_right li').css('left', function(index, value) { 
    if (value === '100%') { 

     $(this).children('span').css({'margin-left': '-58px', 'text-align': 'right'}); 
     alert('hello'); 

    } 
}); 

クロームで動作するようですが、いずれにも手掛かりはありませんか?はChromeで動作しますが、Firefoxでは動作しません - jquery

ありがとう

+0

は[放火犯](http://getfirebug.com/)あなたに何かを伝えることができていますか? – WEFX

+1

私たちが見ることができるデモページがありますか?これでは十分ではありません。 –

+0

実際に何が起こるのですか?それは完全に爆破され、あなたは警戒を得ることはありませんか?警報を発しますが、何も起こりませんか?あなたは警告と悪いことが起こるのですか? –

答えて

4

これは、ブラウザ間での実装の違いの楽しいケースです。

Firefoxは、要素のcomputed styleためused valueを返しています。これは、ブラウザで要素をレンダリングするために使用される実際の値であり、Firefoxは100%を認識し、実際には326ピクセルのようなものになり、326ピクセルを返します。 Mozilla talks about their implementation here.

クロム一方、computed stylespecified value( "100%")を返します。

W3Cは、一種の両方が有効であると言う:returning the specified value is fineそれは、文書のレイアウトを必要とせずに行うことができる場合。その値がレイアウト完了後にのみ決定できる場合はreturning the used value is OKです。

だからあなたは何をすべきかですか?その違う方法を見つけてください。 :-)あなたの要素のposition().leftがオフセットの親のwidth()以上であるかどうかを確認することがありますか?

関連する問題