私が欲しいもの
CURRENT コンテンツに基づいて正確な .results div の高さを決定する。
バックグラウンド
Web サイトをナビゲートすると、結果 div が検索などに基づく動的コンテンツで更新されます。結果 div の高さを取得できますが、取得できるのは初期値のみです。
div を更新するためのコード
$results.unbind();
$results.empty();
$results.html(newContents);
私が試したこと
値を出力して、firebug で確認できることに注意してください。
var $results = $('.results'); /* Prints out: */
console.log($results.height()); /* 18 */
console.log($results[0].scrollHeight); /* 18 */
console.log($results[0].clientHeight); /* 18 */
console.log($results.css('height'); /* 18px */
console.log($results.attr('height'); /* undefined */
高さがページの下部をはるかに超えているため、18px は正確ではありません。どうすれば本当の価値を得ることができますか?
考えられる解決策は?
ryanulit は、私がやっていることに対して .height() が適切に機能する必要があることを理解するのに役立ちました。そのため、イベントが適切に処理されることに問題があると考えるようになりました。event.preventDefault() を呼び出すのではなく、false を返すアプリケーションの多くの場所があります。問題は、false を返すと、event.preventDefault() に加えて event.stopPropagation() も呼び出されることです。
アップデート
高さに影響を与えると思われる return false のある場所は見つかりませんでした。ただし、style="height:0px;" を使用して html で高さを直接設定することがわかりました。高さを適切に更新します。他に何を試すべきかわからないので、現在困惑しています...