javascript - ul的li移入后点击事件与移出事件冲突
漂亮男人
漂亮男人 2017-05-18 10:49:41
[JavaScript讨论组]

如图:我想要的效果是,ul的li,移入颜色变red,移入变blue;
但是如果选中了(也就是点击了)某个li,希望在点击下一个li之前,这个li一直是red,哪怕鼠标从它身上再次穿过,触发移出事件,也还是要保持red,知道另一个li被点击。

下面是我的代码,这样的代码实现的效果只能是,点击之后,当下移出li不变blue,但是再次移入移出这个点击过的li,它的颜色就不能保持red而变为blue了。

有没有大神帮忙解决下=-=先提前说声谢谢了

<ul class="h1">
    <li>1</li>
    <li>2</li>
    <li>3</li>
    <li>4</li>
    <li>5</li>
</ul>
<script>
    $('.h1 li').mouseenter(function(){
        $(this).css({"background":"red"})
        $(this).on("click",function(){
            $('.h1 li').css({"background":"blue"})
            $(this).css({"background":"red"})
            $(this).mouseleave(function(){
                $(this).css({"background":"red"})
            })
        })
    }).mouseleave(function(){
        $(this).css({"background":"blue"})
    })
</script>
漂亮男人
漂亮男人

全部回复(4)
为情所困

css的位置改变一下,就能达到效果。不信你试试。DEMO我后面有空写一个。

js只是区分你单击的是那个

伊谢尔伦

目测可以利用样式优先级,点击的时候添加的类加!important,移入的时候添加的另一个类优先级比点击的时候添加的低~

PHPz

css

.h1 li {
    background-color: blue;
}
.h1 li:hover{
    background-color: red;
}
.chosen {
    background-color: red!important;
}

js:


$('.h1 li').click(function() {
    $('.h1 li').removeClass('chosen');
    $(this).addClass('chosen');
})
漂亮男人

谢邀.

HTML:

<ul class="h1">
    <li class="bl">1</li>
    <li class="bl">2</li>
    <li class="bl">3</li>
    <li class="bl">4</li>
    <li class="bl">5</li>
</ul>

CSS:

.bl {
    background-color: blue;
}
.bl:hover{
    background-color: red;
}
.clk {
    background-color: red;
}

JavaScript:

$('.h1>li').click(function() {
    $('.clk').removeClass('clk').addClass('bl');
    $(this).removeClass('bl').addClass('clk');
})

这样?

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号