2013-07-03 47 views
0

我正在尝试使鼠标悬停时出现按钮,并在鼠标离开对象时消失。有很多帖子,就像你可能在Twitter上看到的那样,但我只想让按钮出现在你徘徊的帖子上,而不是全部。这里是我的代码:.hover()工作,但不适用于每个单独的项目

$(".posts").hover(function() { 
    $(this).find("article .report-post").css('visibility', 'visible'); 
    $(this).find("article .report-post .report-btn").css('visibility', 'visible'); 
}, function() { 
    $(this).find("article .report-post").css('visibility', 'hidden'); 
    $(this).find("article .report-post .report-btn").css('visibility', 'hidden'); 
}); 

我在做什么错?如果我这样做,什么都不会发生:

$("article").hover(function() { 
    $(this).find(".report-post").css('visibility', 'visible'); 
    $(this).find(".report-post .report-btn").css('visibility', 'visible'); 
}, function() { 
    $(this).find(".report-post").css('visibility', 'hidden'); 
    $(this).find(".report-post .report-btn").css('visibility', 'hidden'); 
}); 

那是也许是因为有很多<article> S于网页?

编辑:这里是<article> S的一个的HTML:

<article class="single-post"> 
    <div class="profile-pic"> 
     <a href="tg"> 
     <div style="background-image:url(example.jpg);background-size:cover;width:70px;height:70px;"></div></a> 
    </div><!-- profile-pic --> 

    <div class="text"> 
     <h5 class="tg" id="CMfQ34erT6-author"><a href="tg" style="color:#2C3E50;">Tristram Gale</a></h5><a class="report-post" href="#" id="CMfQ34erT6" style="visibility: hidden;"> 
     <div class="report-btn" style="visibility: hidden;"></div></a> 

     <p class="post-text">LALALALALALALALALALALA</p> 

     <div class="details"> 
      <ul> 
       <li style="text-overflow: ellipsis;width: 170px;white-space: nowrap;overflow: hidden;"> 
        <a href="school.php?id=1">Devonport High School for Boys</a> 
       </li> 

       <li style="list-style: none; display: inline"> 
        <a href="post.php?id=CMfQ34erT6"> 
        <ul> 
         <li title="2013-07-02 21:16:57">about 15 hours ago</li> 
        </ul> 

        <ul class="comments" id="CMfQ34erT6"> 
         <li> 
          <a href="javascript:void(0)">0 comments</a> 
         </li> 
        </ul></a> 
       </li> 
      </ul> 
     </div> 

     <div class="comments-box" id="CMfQ34erT6-box" style="display: none;"> 
      <div id="CMfQ34erT6-comment-box"> 
       <ul> 
        <li class="CMfQ34erT6-new-comment"> 
         <form class="CMfQ34erT6-form" id="CMfQ34erT6" name="CMfQ34erT6"> 
          <input autocomplete="off" id="newCommentText" placeholder="Write a comment..." type="text"><input id="addcomment" onclick="return postComment(this.form.id, this.form.newCommentText.value)" type="button" value="Post"> 
         </form> 
        </li> 
       </ul> 
      </div> 
     </div> 
    </div><!-- text --> 

    <div class="clear"></div><!-- clear --> 
</article> 

感谢

+5

后的HTML和CSS代码也 – Sowmya

+0

什么是DOCTYPE?请注意,这种效果可以在纯CSS3中实现。 – ElmoVanKielmo

+0

jsfiddle会不错 –

回答

1

如果您不打算在Javascript中使用hover()函数来完成其他功能,那么您可以在CSS中完全执行它。

取下按钮和链接style="visibility: hidden;"属性和添加到您的CSS:

article .report-post { 
    visibility: hidden; 
} 
article:hover .report-post { 
    visibility: visible; 
} 

按钮只会只要可见的光标在文章。

的jsfiddle再次在线:http://jsfiddle.net/GeraldS/6MQv7/

+0

哇,太好了 - 谢谢。完美的作品! –

0

使用本: -

jQuery('.button').hover(function() { 
     jQuery(this).addClass('button-hover'); 
    }, function() { 
     jQuery(this).removeClass('button-hover'); 
    }); 

而是按钮替换品。

+0

这对我没有任何帮助。 –

1

好吧,我测试过此上的jsfiddle但他们的服务器现在是下跌 - 看http://www.isitdownrightnow.com/jsfiddle.net.html 在HTML改变从visibility:hidden的风格属性,display:nonediva为好。

然后将下面的代码工作:

$(".posts .single-post").hover(function() { 
    $(this).find(".report-post").show(); 
    $(this).find(".report-btn").show(); 
}, function() { 
    $(this).find(".report-post").hide(); 
    $(this).find(".report-btn").hide(); 
}); 
+0

不,不做,事情:(真的很奇怪 –

0

试试这些东西:

  1. 确保你已经把悬停()函数中的document.ready()
  2. 有课堂内没有文字.report-btn。确保你可以看到按钮,当一切都设置为可见。
  3. 没有必要的.find的,使简单...

用于例如,试试这个代码:

$(function() { 
$('article').hover(function() { 
    $(".report-post").css('visibility', 'visible'); 
    $(".report-post .report-btn").css('visibility', 'visible'); 
}, function() { 
    $(".report-post").css('visibility', 'hidden'); 
    $(".report-post .report-btn").css('visibility', 'hidden'); 
}); 
}); 

如果还是不行,请尝试“显示器:none“和”display:block“而不是”visibility“

+0

我已经完成了这两件事,但仍然没有任何反应。 –

+0

当你删除jquery并将其可见性设置为可见时,.report-btn是否可见?在.report-btn类的按钮中没有任何文本)我使用了这个函数(在.report-btn div中添加了一些文本之后),它对我有用 – TheScarecrow

+0

我们可以私下聊聊吗?你可以访问这个站点,这样你就可以亲自看到它了。当我手动改变可见性时,.report-btn会显示,但是上面的代码仍然不起作用。如果你可以给我发邮件js.anderson[email protected] .com,这将非常感谢。 –

相关问题