我正在尝试启用悬停(在未选中复选框时添加'.add_link_twitter_hover'类)&禁用它(删除'.add_link_twitter_hover'类)一旦选中该复选框,就像Pinterest在用户添加pin时为Twitter / Facebook复选框所做的那样:
我试过这个,但是一旦鼠标指针离开,它就不会禁用悬停(不会删除'.add_link_twitter_hover'类):
var hoverTwitter = "add_link_twitter_hover";
$(postTwitter + " input").click(function(e) {
$(this).parent().removeClass(hoverTwitter);
$(this).parent().toggleClass(activePostTwitter);
});
$("label.add_link_twitter").hover(function(e) {
if($("input.publish_to_twitter").is(":checked")) {
$(this).removeClass(hoverTwitter);
return;
}
$(this).addClass(hoverTwitter);
});
知道如何在未选中复选框时启用悬停&选中复选框后禁用它?提前谢谢!
这是jQuery:
var postTwitter = ".add_link_twitter";
var activePostTwitter = "active";
$(postTwitter + " input").click(function(e) {
$(this).parent().toggleClass(activePostTwitter);
});
这是html:
<label class="add_link_twitter">
<input type="checkbox" name="publish_to_twitter" class="publish_to_twitter"><span>Share on Twitter</span>
</label>
这是css:
.add_link_twitter{
position:absolute;
left:15px;
bottom:16px;
color: #a19486;
border: 2px solid transparent;
border-color: #F0EDE8;
border-radius: 4px;
font-size: 13px;
font-weight: bold;
cursor: pointer;
padding: 7px;
padding-top: 5px;
padding-bottom: 5px;
}
.active {
border-color: #468BD0;
color: #468BD0;
background-color: whiteSmoke;
}
.add_link_twitter_hover
{
color: #A19486;
border: 2px solid transparent;
border-color: #C2B1A2;
border-radius: 4px;
background-color: white;
padding: 7px;
padding-top: 5px;
padding-bottom: 5px;
}
答案 0 :(得分:1)
试试这个:
$("label.add_link_twitter").hover(function(e) {
if(!$("input.publish_to_twitter").is(":checked"))
$(this).addClass(hoverTwitter);
}, function() {
$(this).removeClass(hoverTwitter);
});
使用.hover()
method的常用方法是提供两个函数:第一个在鼠标移动到相关元素上时调用,第二个在鼠标移动时调用进行。
所以我上面做的是在第一个函数(mouseenter)中,如果没有选中复选框,我已经添加了你的类。在第二个函数(mouseleave)中,我只删除了类。
答案 1 :(得分:1)
这可以在没有任何javascript的情况下完成。如果您希望始终拥有“publish_to_twitter”类,只需将这两个状态与伪类分开:
.publish_to_twitter:hover{
width:50px;
}
input.publish_to_twitter:checked{
width:500px;
}
我在选择器中添加了input元素,以确保选中的样式优先。只需确保对于您设置的每种样式:悬停,您都有相同的样式:选中。