当有人将鼠标悬停在我的博客文章标题上时,我正在尝试添加“阅读更多”文本。我尝试使用
$(".blogpost").mouseover(function(){
$(this).append(" - read more...");
});
但我不知道如何删除阅读更多内容...当 onmouseout 时。
问问题
3742 次
5 回答
6
正确的方法是在 HTML 中已有额外的文本,并使用 CSS :hover 属性来隐藏和显示文本。为此使用 javascript 会增加不必要的复杂性和脆弱性。
于 2012-09-26T16:47:54.667 回答
5
在跨度中添加阅读更多内容并在鼠标移出时删除该跨度
添加阅读更多包裹在跨度中。
$(".blogpost").mouseover(function(){ $(this).append("<span id="read" - read more..."></span>); });
删除添加的跨度及其在这种情况下读取的 id。
$(".blogpost").mouseout(function(){ $('#read').remove(); });
于 2012-09-26T16:47:40.493 回答
1
你也可以试试这个:
$(".blogpost").mouseout(function(){
$(this).html("");
});
假设您没有子元素。
于 2012-09-26T16:48:22.973 回答
0
如果您想在 javascript 中执行此操作,您可以执行以下操作:
演示:http: //jsfiddle.net/a3jzF/
$(".blogpost").mouseover(function() {
$(this).append("<div class='readmore'> - read more...</div>");
}).mouseout(function(){
$('.readmore').remove();
});
于 2012-09-26T16:52:48.110 回答
0
我只会在创建后显示和隐藏它。.hover() 有两个功能。
$(".blogpost").hover(function(){
var $span = $(this).find('.more');
if ( $span.length ) {
$span.show();
} else {
$(this).append('<span class="more"> - read more...</span>');
}
}, function(){
var $span = $(this).find('.more');
$span.hide();
});
或仅使用 css(这更好):
<div class="blostpost">
...
<span class="more">read more</span>
</div>
.blogpost .more { display: none; }
.blogpost:hover .more { display: block; }
于 2012-09-26T16:53:31.937 回答