我在一个页面上显示了一堆来自用户的帖子。我有一个类名为“posts”的主要父 div,每个帖子都输出到一个类名为“row”的 div 中。所以在 div.posts 中有很多 div.row。每个看起来都是这样的。
<div class="row clearfix">
<div class="left-column">
<img src="..." title="" />
</div>
<div class="main-column">
<div class="row-text">Post Text...</div>
<div class="row-date">Posted Date...</div>
</div>
<div class="actions-column">
<a href="#">Link</a>
<a href="#">Link 2</a>
<a href="#">Link 3 etc.</a>
</div>
</div>
通过 CSS,actions-column 默认设置为 display:none。当用户将鼠标悬停在帖子 (div.row) 上时,我想显示操作列。我最初的做法是为每一行设置一个鼠标悬停,这会对浏览器造成影响并减慢速度。我做了一些研究,偶然发现了事件委托,并决定试一试。到目前为止,我能够确定哪一行被定位,但是,我无法弄清楚如何使用“actions-column”类来定位它的子div。
到目前为止的代码...
$(window).load(function(){
$('.posts').mouseover(function(e){
var $row, $tgt = $(e.target);
if ($tgt.hasClass("row")) {
$row = $tgt;
} else {
if ($tgt.parent().parent().hasClass('row'))
$row = $tgt.parent().parent();
else if ($tgt.parent().hasClass('row'))
$row = tgt.parent();
else
return false;
}
//code here to select div.actions-column and show it
});
$('.posts').mouseover(function(e){
var $row, $tgt = $(e.target);
if ($tgt.hasClass("row")) {
$row = $tgt;
} else {
if ($tgt.parent().parent().hasClass('row'))
$row = $tgt.parent().parent();
else if ($tgt.parent().hasClass('row'))
$row = tgt.parent();
else
return false;
}
//code here to select div.actions-column and hide it
});
});