2

今日この質問をしましたが、正解を出すのが早すぎたと思います。Safariでjqueryを使用してアンカー要素のcssの長さと幅を取得する方法を理解しようとしています。しかし、「0」が返され続けます。これは、CSS がレンダリングされる前に JavaScript が起動しているためであると言われました。これは、Webkit ブラウザーの癖です。

元のページは次のとおりです: http://f1shw1ck.com/jquery_sandbox/csspops-orig.html

ただし、CSS を取得する前に、すべてが完全にレンダリングされるまで待機するように jquery に指示する小さなテストを作成しました。http://f1shw1ck.com/jquery_sandbox/csspops.html

セレクター用

a.popup {
                width: 800px;
                height: 560px;
            }

とhtml

<a href="http://www.metmuseum.org/toah/hd/apol/hd_apol.htm" class="popup">African Rock Art: Apollo 11 Cave Stone (c. 25,500 - 23,500 BCE); Wonderwerk Cave Stones (c. 8000 BCE)</a>

ページが完成するまで待ってから、それらの寸法を取得します。

$(document).ready(function () {
                if (jQuery.browser.safari && document.readyState != "complete"){
                    //console.info('ready...');
                    setTimeout( arguments.callee, 5000 );
                    return;
                  }
          alert($("a.popup").css("width"));
        });

「0」がSafariでまだ返されていることを除いて。私はこれを間違った方法で行っていますか、それとも他の原因がありますか?

ありがとう!

4

2 に答える 2

1

display: blocka.popup に追加してみましたか?

これにより、リンクの幅が 800px に強制されます。自動幅を取得したい場合は、試してください

alert($("a.popup").width());
于 2009-09-04T03:14:33.280 に答える