首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在div中悬停和选中复选框时突出显示问题

问在div中悬停和选中复选框时突出显示问题
EN

Stack Overflow用户
提问于 2014-07-28 11:28:36
回答 1查看 246关注 0票数 0

我在div上高亮显示时遇到了问题。当我将鼠标悬停在div上时,它会正常工作,因为当我将鼠标悬停在div上并退出时,它会切换到css以突出显示它。但是,当单击事件发生时,div仍然能够在悬停时突出显示,即使我在hover函数中有禁止它这样做的语句。

这是我的jQuery代码,用于处理on hover on/off和on click事件。

代码语言:javascript
复制
$(document).ready(function() {

$('.a-choice').click(function() {
    if( !($(this).children('.a-box').find('input[type=checkbox]').is(':checked')) ){
        $(this).toggleClass('highlight_selected');
        $(this).children('.a-box').find('input[type=checkbox]').prop('checked', true);
    }

    else if( $(this).children('.a-box').find('input[type=checkbox]').is(":checked") ){
        $(this).toggleClass('highlight_selected');
        $(this).children('.a-box').find('input[type=checkbox]').prop('checked', false);
    }
});

$('.a-choice').hover(function () {
    if( !($(this).children('.a-box').find('input[type=checkbox]').is(':checked')) ){
        $(this).toggleClass("highlight_hover");
    }

    else if( $(this).children('.a-box').find('input[type=checkbox]').is(":checked") ){
        $(this).toggleClass("highlight_hover");
    }
});
});

对于视觉效果,这里有一把小提琴:http://jsfiddle.net/djleonardo/R2JDT/

EN

回答 1

Stack Overflow用户

发布于 2014-07-28 11:36:49

已更新

我建议你使用CSS伪类hover来代替,下面的方法允许你在复选框被选中时将div着色为蓝色,此外,它还简化了javascript中的逻辑。

DEMO

CSS

替换您的css规则

代码语言:javascript
复制
.highlight_selected{
    background: #bed5ed;
}

.highlight_hover{
    ...
}

具有以下功能:

代码语言:javascript
复制
.a-choice.highlight_selected, .a-choice.highlight_selected:hover {
    background: #bed5ed;
}

.a-choice:hover{
    ...
}

JS

从js文件中删除以下代码(悬停事件将由CSS处理):

代码语言:javascript
复制
$('.a-choice').hover(function () {
    if( !($(this).children('.a-box').find('input[type=checkbox]').is(':checked')) ){
        $(this).toggleClass("highlight_hover");
    }

    else if( $(this).children('.a-box').find('input[type=checkbox]').is(":checked") ){
        $(this).toggleClass("highlight_hover");
    }
});
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24988057

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档