2011-02-07 12 views
1

このページ=>http://api.jquery.com/offsetは、必要なCSSが適切に説明されていません。また、私が読んだ5つの質問のどれも、この問題に関連してCSS問題に触れることもありません。offset.leftに必要なCSSは何ですか?

1)どのCSSで$(this).offset.leftが 'undefined'を返すのですか?

2)例えば(offset.left複雑になり、他のどのような問題を知ることも必要である。$("object").hide()原因はundefinedを返すためにoffset.leftでしょう?など)

私はoffset.left殺す何CSS知っておく必要がありますどんなCSSが適切な価値を返すでしょうか。

のthnx

答えて

4

$(this).offset().leftは、常に値を返します。 jQueryは、ブラウザがページの要素をレンダリングするボックスモデルに基づいてこの値を決定します。

CSSは定義された言語でオフセット値を制御する方法を提供しますが、レンダリング後は常に値を持ちます。

あなたの質問に対する答え(そしてあなたが以前に探していた答えを見つけられなかった理由)は、jQueryとCSSが両方とも基礎技術を制御していることです。 jQuery はCSS規則を読むではありません。


あなたは要素を非表示にした場合、それはボックスモデルの一部ではなく、かつoffset().leftは0の値を返します。

DEMO:http://jsfiddle.net/9xaCe/

+0

'this'が何であるかによって、時には 'undefined'を返すことがあります。私は$( 'someobject')を引き起こす原因だけを知る必要があります。offset.leftは 'undefined'になります。たとえば、$( 'someobject')が以前に.hide()によって隠されていた場合、そのオフセットは隠されているため 'undefined'になります。これは一例です。また、div#someobjectがpositionでない場合:relative; CSSでは、jqueryは状況に応じてdiv#someobjectが 'undefined'と言うことができます。 –

+0

offset.left –

+0

DEMOに感謝していますので、そんなに多くの質問や問題があるのは理由がありますが、ここに隠された後に印刷を開始しないという問題があります。http://jsfiddle.net/5CYUn/ –

1

あなたが参照されたページは言います:

jQueryは非表示要素のオフセット座標 の取得をサポートしていません

要素が非表示の場合、.offsetundefinedを返します。あなたの質問2への答えははいです。

+0

しかし、それは '未定義'の原因になるのは唯一のものです私の答えは、 '未定義'の原因となるcssとjsの問題と、保持するために必要なoffset.leftと整数。 –

+0

私が本当にやりたいことは、そうでなければ私たちは暗闇の中で撮影しているので、このテーマのjquery wikiを更新することです。私はCSSエディタの前に座って、何かが効くまで属性をオン/オフするのが好きではありません。 wikiページには、 '未定義の' cssまたはjs関連の問題の種類を説明する必要があります。 –

+0

ありがとうアンドリュー私は再びgoofballされていた。 –

関連する問題