2011-12-15 15 views
0

WebアプリケーションをjQuery 1.5.2から1.7.1にアップグレードする処理中です。 jQuery 1.5.2では、要素が別の隠し要素の中にある場合、$( 'elem')。css( 'width')を使用して要素のCSS値のパーセンテージを取得することができました。

明らかに、PERCENTSにはCSS値が必要ですが、パーセント値、またはpx、emなどの値になるかどうかは事前に分かりません。

簡単なテストケースについては、こちらをご覧ください:http://jsfiddle.net/strikernl/y3P3A/

1.7.1で、もはや、1.5.2で動作するように見えません。私はテストで1.6を追加してまだ機能しているかどうかを確認しましたが、そうではありませんでしたので1.5.2と1.6の間のどこかで壊れました。

私は何か間違っているのですか、私がやっていることをやり遂げる別の方法がありますか?

あなたが探している

+0

http://stackoverflow.com/questions/8387419/retrieving-percentage-css-values-in-firefox – stecb

+0

getStyle()関数がこのトリックを行うように見えるので、他のすべてが失敗した場合、私はそれを使用することができます。しかし、実際にjQueryでなぜ今までではなく動作していたのかを実際に説明するわけではありません。いずれにせよありがとう! – strikernl

+0

問題はありません;)btwその不思議、jqueryのソースを確認して違いを確認する必要があります。 – stecb

答えて

0

を、私はそれはバグですが分かりました。ここをクリックhttp://bugs.jquery.com/ticket/10782を参照してください。明らかに気付くまでにはかなりの時間がかかりました(1.6から1.6.4、次に1.7と1.7.1)。

0

私の答えを参照してください、 "解決しよう":

$('#foo').width(); 

あなたも得ることができます。

$('#foo').outerWidth() 

または

$('#foo').innerWidth() 

方法によって

(あなたのパディング、ボーダー...に応じて)、jsfiddleに、あなたはuが

+0

いいえ、width()、outerWidth()、innerWidth()のいずれも必要な処理を行いません。実際、jQuery 1.5.2では1.7.1はもちろんのこと、それらは私が必要とすることさえできません。また、私の例を詳しく見ていれば、jQueryだけでなく、3つのバージョンのjQueryをロードすることがわかりました。私はjsfiddleがそのオプションを提供しているとは思わない。新しいテストケースを追加しました.Width()、outerWidth()、innerWidth()の出力もここで見ることができます:http://jsfiddle.net/strikernl/eenRY/2/ – strikernl

0

を(左のサイドバーを見て...と他の多くのlibrairies)直接のjQueryをすることはできません含めることができますこのようにそれを実行します。

$('#elem').width(); 

私はここにあなたのフィドルを更新しました。興味がある人々のためにhttp://jsfiddle.net/y3P3A/1/

+0

Errr、どうしたら助けになりますか?パーセントを文字通り(引用符の間に)追加しました。私は実際にそれがパーセンテージになることは事前に知っていません。それは実際に私の質問のポイントのようなものです。 – strikernl

+0

ああ、私はあなたがそれがとにかくパーセンテージになるだろうと分かっていると思った。じゃあ心配しないで。 –

+0

元の投稿を修正して、その点を明確にしました。 – strikernl