我试图在悬停时显示一个按钮,当鼠标离开对象时消失。有很多帖子,比如你可能在Twitter上找到的帖子,但我只希望按钮显示在你徘徊的帖子上,而不是全部。这是我的代码:
$(".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>
个?
编辑:以下是其中一个<article>
的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>
由于
答案 0 :(得分:1)
好的,我已经在jsfiddle上对此进行了测试,但他们的服务器现已关闭 - 请参阅http://www.isitdownrightnow.com/jsfiddle.net.html
在HTML中,将visibility:hidden
的样式属性更改为display:none
和div
的{{1}}。
然后以下代码有效:
a
答案 1 :(得分: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/
答案 2 :(得分:0)
使用它: -
jQuery('.button').hover(function () {
jQuery(this).addClass('button-hover');
}, function () {
jQuery(this).removeClass('button-hover');
});
而不是按钮替换文章。
答案 3 :(得分:0)
试试这些:
例如,试试这段代码:
$(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');
});
});
如果仍然无效,请尝试“display:none”和“display:block”而不是“visibility”