0

我尝试使用以下代码进行悬停效果。但它不起作用请帮助我

脚本

$('.sha').hover(
  function () {
    $(this).next().children('div').css('display','block');
  }, 
  function () {
    $(this).next().children('div').css('display','none');
  })

HTML

<div class="listing_share_cont">
    <a href="#" class="sha">Share</a>
    <img src="images/listing_share_arrow_down.jpg" alt=" ">                 
    <div class="list_view_share_button_pop_up_cont">
        <div class="list_view_share_button_pop_up_cont_arrow">
            <img src="images/home_list_view_share_pop_arrow.png" alt=" " />
        </div>
        <div class="list_view_share_button_pop_up">
            <!-- Some images here -->
        </div>
    </div>
</div>

CSS

.list_view_share_button_pop_up_cont { 
    float: left; left: 10px; position: absolute; top: 9px; width:285px; display:none;
}
.list_view_share_button_pop_up_cont_arrow {
    float:left; width:265px; margin:0 0 -4px 0;
}
.list_view_share_button_pop_up { 
    float:left; width:265px; background:#0474be; padding:8px 8px 4px 8px;
}
4

2 回答 2

0

您要显示的.sha元素是悬停元素的兄弟。您可以使用siblings选择该元素(请注意,您可以使用showandhide代替css):

$('.sha').hover(function () {
    $(this).siblings(".list_view_share_button_pop_up_cont").show();
}, function () {
    $(this).siblings(".list_view_share_button_pop_up_cont").hide();
});

从那里,您可以将代码减少到只有一个回调,它使用toggle

$('.sha').hover(function () {
    $(this).siblings(".list_view_share_button_pop_up_cont").toggle();
});​
于 2012-07-07T11:58:22.003 回答
0

使用 .first() 和 nextAll 得到你想要的

$('.sha').hover(
  function () {
    $(this).nextAll("div").first().show();
  }, 
  function () {
    $(this).nextAll("div").first().hide();
  })
于 2012-07-07T12:05:11.503 回答