0

ツールチップはwhileループでは機能しませんすべてのアイコンが最初のアイコンの情報を表示しますここだけがphpです

$check = odbc_exec($conn,"select * from Item");
while($r = odbc_fetch_array($check)){
$info = $r['Info'];
$Image = $r['image'];
echo  "<span class='hint'><img src='$Image'></span>
<div class='readitem' style='display:none'>$info</div>";

}

jquery : ツールチップ

<script type="text/javascript">
$(document).ready(function() {
    var changeTooltipPosition = function(event) {
      var tooltipX = event.pageX - 10;
      var tooltipY = event.pageY + 10;
      $('div.tooltip').css({top: tooltipY, left: tooltipX});};
    var showTooltip = function(event) {
    var item = $('.readitem').html();

      $('<div class="tooltip"><center>'+ item + '</center></div>').appendTo('body');
      changeTooltipPosition(event);
    };
    var hideTooltip = function() {
       $('div.tooltip').remove();
    };
    $(".hint").bind({
       mousemove : changeTooltipPosition,
       mouseenter : showTooltip,
       mouseleave: hideTooltip
    });
});

</script>

解決策はありますか?

ありがとうございました ..

4

2 に答える 2

1

条件のない while ループは見たことがありません。while ループは次のように形成する必要があります

while (condition) {
    //your code
}

ここで、条件は真または偽として評価される式です。ただし、あなたの場合、アイコン URL の配列がある場合があります。配列でループする方が便利な for ループを使用する必要があります。

for ($i = 0; $i < count($images); $i++) {
    echo $images[$i]; // Assuming $images is an array.  
}
于 2012-09-20T14:57:34.647 に答える
0

var item = $('.readitem').html();回線の問題です。

すると$('.readitem')、そのクラスを持つページ上のすべての要素と一致します。それを呼び出す.html()と、最初に一致した要素の html が返されます (したがって、常に最初の要素が表示されます)。

代わりに行う必要があるのは.hint、兄弟を見つけるために、ホバリングしている 内を調べて、その兄弟.readitemの html を使用することです。

したがって、これは代わりに機能するはずです:

var item = $(this).siblings('.readitem').html();

$(this)は、ホバリングしている のインスタンスである必要があるため、その兄弟要素で.hintを見つけようとしています。.readitem

于 2012-09-20T13:41:43.583 に答える