JavaScript «это» не работает для элемента HTML

0

Я хочу отображать информацию в div с элементом img которому я обращаюсь к базе данных через php. Я связываю event onmouseover с каждым элементом и onmouseover this и некоторые параметры в качестве аргументов, но при наведении указателя мыши на изображение, div отображается в верхнем левом углу браузера и не отображается рядом с изображением.

Я также попытался удалить this и результат тот же старый.

код для элемента изображения

         $row = mysqli_fetch_array($result);

          $firstname = $row['firstname'];

          $lastname = $row['lastname'];

          $image =    $row['image'];

          $phone =    $row['phone'];

          $email =    $row['email'];

     $realtorData = $firstname.'|'.$lastname.'|'.$phone.'|'.$email.'|';
echo "<img src='/../../Realtors/$image'onmouseover='showRealtorInfo(this,\"".$realtorData."\" );' onmouseout='hideRealtorInfo();'>";

код javaScript

  function showRealtorInfo(element, realtorInfo)
{
    var realtorArray = realtorInfo.split('|');

    var firstname = realtorArray[0];
    var lastname  = realtorArray[1];
    var phone     = realtorArray[2];
    var email     = realtorArray[3];

    var realtorInfoDiv = document.getElementById('realtorinfo');

    var myHTML  = "<p><b>" + firstname + " " + lastname + "</b><br /><br />";
        myHTML += "Phone: " + phone + "<br />";
        myHTML += "Email: " + email + "<br />";

    realtorInfoDiv.innerHTML = myHTML;

    x = element.offsetLeft;
    y = element.offsetTop;

    //alert(x);

    realtorInfoDiv.style.left = y + 100;
    realtorInfoDiv.style.top = x + 550;



    realtorInfoDiv.style.visibility = 'visible';


}

CSS-код для элемента div

#realtorinfo{

position: absolute;
left: 10px;
top: 10px;
width: 200px;
height: 150px;
padding: 5px;
background-color: yellow;
visibility: hidden;
float: left;

} 
  • 0
    Это, вероятно, происходит из-за позиции: абсолют в CSS.
  • 2
    Я не могу увидеть this в вопросе
Показать ещё 8 комментариев

1 ответ

0

Вы не упомянули "px" в следующем LOC.

realtorInfoDiv.style.left = y + 100;
realtorInfoDiv.style.top = x + 550;

Это должно работать:

realtorInfoDiv.style.left = y + 100 + "px";
realtorInfoDiv.style.top = x + 550 + "px";
  • 0
    офигенно он работает, но на самом деле он движется в направлении х, а не в направлении у
  • 0
    вау, спасибо, это сработало, я разобрался, переписав realtorInfoDiv.style.top = y + 100 + "px"; realtorInfoDiv.style.left = x + 550 + "px";
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню