1

写真の右側にあるマーカーをクリックすると、マーカーのツールチップがマーカーの左側に配置されるように、条件付きJavaScriptを実行してdivを配置しようとしています。マーカーの右側。したがって、マーカーが右側にある場合は、ツールチップをマーカーのposition()。leftからツールチップの幅を引いた位置に配置するように指示します。ただし、ツールチップの幅は内部のテキストに応じて常に変化し、jqueryのwidth()関数を呼び出しても適切な幅は返されません。これを修正する方法について何かアイデアはありますか?次に例を示します。

http://bit.ly/IkbWl6

これが私のコードです:

var tagPos = $photo_tag.position();
if (isNarrow == true){
    var photoWidth = $('#photo_box').width();
    if (tagPos.left > photoWidth/2){
        var brandWidth = $('.brand_name').width(); //MH - NOT WORKING
        $brand_name_container.css({'left' : tagPos.left-brandWidth, 'top' : tagPos.top+brandAdjTop});
    } else {
        $brand_name_container.css({'left' : tagPos.left+brandAdjLeft, 'top' : tagPos.top+brandAdjTop});
    }
}
4

1 に答える 1

2

念のためですが、幅をリクエストした瞬間にツールチップが表示されますか?レンダリングエンジンでレンダリングするには、ツールチップが表示されている必要があります。表示されていない場合、サイズは設定されません。

あなたは例えばそのようなことをするかもしれません

$('#mytooltip').show(0);
width = $('#mytooltip').width();
$('#mytooltip').hide(0);

これはレンダリングが行われるのに十分ですが、ユーザーに実際に表示される時間はありません。

于 2012-04-25T14:22:13.350 に答える