淘先锋技术网

首页 1 2 3 4 5 6 7

所以,我给你的代码很糟糕...我试图弄明白,但是javascript对我来说似乎是无法学习的。

我有一个动态生成的无序列表。当用户悬停在每个列表项上时,我希望在单独的div中显示更多信息。

以下是我的html/php wise:

<div id="inv">
<ul>
<?php 
$i = 1;
foreach ($inv as $item) {
    echo "<li class='inventory' id='$i'>";
    echo $item['name'] . "<input type=button value='destroy'></input> ";
    echo "</li>";
    $i ++;
}
?>
</ul>
</div>
<?php 
$i = 1;
foreach ($inv as $item) {
echo "<div class='inventory_display' id='$i'>".$item['name']."</div>";
$i ++;
}

CSS:

#inventory ul {
    list-style: none;
}
#inventory li {
    background-color: #B3B4BD;
    color: white;
}

#inventory li:hover {
    background-color: #9bc2d0;
    color: black;
    cursor: pointer;
}

#inventory {
    float:left;
    width: 500px;
}

#inventory_display {
    display: none;
    margin-left: 420px;
    position: absolute;
    width: 300px;
    height: 300px;
    background-color: #97cae6;
}

我假设我需要javascript,但是真的不知道从哪里开始。粘贴我所拥有的可能只会引起更多的混乱。

我很高兴有一个简单的悬停显示出现,但可能会寻求使悬停显示它,并点击使其静态。

谢了。如果需要更多信息,请告诉我!如果一个完整的答案太麻烦,任何地方开始,如链接等也将是有帮助的。

谢谢!

将$item['name']移动到li的rel属性中。

echo "<li class='inventory' id='$i' rel="$item['name']">";

现在,我们可以使用jQuery向它添加一个元素,并显示该div内部的rel。

CSS也需要改变

#inventory li{
  background-color: #B3B4BD;
  color: white;
  /* Add this */
  position:relative;
}

新班级。

.li-tooltip{
  position:absolute;
  top:0;
  /* other css stuff, we'll do the width and height later. */
}

现在让我们使用jQuery来做一些漂亮的事情。

$('#inventory li').hover(function(){
  //this is the "mouse in"
  // find the width of the LI, so we can use that to decide positioning.
   var liW = $(this).width();
  $('<div class="li-tooltip">'+$(this).attr('rel')+'</div>').css('left', liW).appendTo($(this));
}, function(){
  //this is the "mouseout"
  $('.li-tooltip').remove();
});

这是工作的小提琴

不知道这个问题提出时是否可行,但是对于一个简单的悬停文本,使用title属性就足够了。例如

echo "<li class='inventory' title='HOVER TEXT!' id='$i'>";