0

私が欲しいもの

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 で高さを直接設定することがわかりました。高さを適切に更新します。他に何を試すべきかわからないので、現在困惑しています...

4

2 に答える 2

1

.height()jqueryの機能を調べてください。

これが実際に変化していることを示すjsfiddleです:http://jsfiddle.net/EvybH/2

アップデート

height: 0px;考えさせられたので、フィドルでテストして更新しました:http://jsfiddle.net/EvybH/3 ​​/

CSS で特定の高さを設定すると、.height() プロパティは常にその値を返すように見えます。フィドルを確認してください。min-height: 18pxdiv にデフォルトの高さを与えてから拡張できるようにするかどうかを設定できます。

于 2012-08-24T16:35:14.783 に答える
0

以前のポスターの両方が言ったように、 .height() は機能するはずですが、機能しない場合は呼び出すと思います

.height(currentElement.height).height() 

更新された高さを返します (ただし、非常にハックであり、おそらく推奨されません)。

編集: currentElement は動的な高さを持つ要素です

于 2012-08-24T16:49:30.943 に答える