首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mouseleave()不删除类

mouseleave()不删除类
EN

Stack Overflow用户
提问于 2019-07-30 18:10:50
回答 2查看 84关注 0票数 0

我的jQuery代码有问题。当我点击蓝色按钮(icon_disabled)时,我想给它添加一个显示白色背景的icons-visible类,我想要显示disabled_list (图片上的红色p )。当我离开红色disabled_list时,我想再次display: none它,并删除我之前添加的类。控制台日志运行良好,但我不能删除类并对红色p执行display: none操作。为什么?

代码语言:javascript
复制
var icon_disabled = document.querySelector("#block-plywajaceikony p:nth-child(2)");
var disabled_list = document.querySelector("#block-plywajaceikony p:nth-child(5)");

        $(icon_disabled).mouseenter(function() {
            $(this).addClass("icons-visible");
            $(disabled_list).css("display","block");
        });

        $(disabled_list).mouseleave(function() {
            $(icon_disabled).removeClass("icons-visible");
            $(this).css("display","none");
            console.log("testing");
        });

HTML:

代码语言:javascript
复制
<div id="block-plywajaceikony">
  <p>...</p>
  <p>...</p> //here I add and trying to remove class "icons-visible"
  <p>...</p>
  <p>...</p>
  <p>...</p> //here is my red p with icons
</div>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-07-30 18:43:01

我在火狐浏览器中运行得很好:https://jsfiddle.net/6zbnseL3/4/

代码语言:javascript
复制
var icon_disabled = document.querySelector("#block-plywajaceikony p:nth-child(2)");
var disabled_list = document.querySelector("#block-plywajaceikony p:nth-child(5)");

$(icon_disabled).mouseenter(function() {
        $(this).addClass("icons-visible");
        $(disabled_list).css("display","block");
    });

$(disabled_list).mouseleave(function() {
        $(icon_disabled).removeClass("icons-visible");
        $(this).css("display","none");
        console.log("testing");
    });

然而,我认为你应该采用另一种交互概念。悬停在一个元素上并通过将鼠标悬停在另一个元素上来删除它是非常不直观的。最好使用用户已知的交互式元素。例如,一个切换:点击按钮->按钮改变颜色(按下状态) ->内容出现->再次点击按钮取消激活。(可以使用复选框来完成)。

票数 1
EN

Stack Overflow用户

发布于 2019-07-30 18:46:16

代码语言:javascript
复制
var icon_disabled = document.querySelector("#block-plywajaceikony p:nth-child(2)");
var disabled_list = document.querySelector("#block-plywajaceikony p:nth-child(5)");
    $(icon_disabled).mouseenter(function() {
        $(this).addClass("icons-visible");
        $(disabled_list).css("display","block");
    });

    $(disabled_list).on('mouseleave',function() {
        $(icon_disabled).removeClass("icons-visible");
        $(this).css("display","none");
        console.log("testing");
    });

代码语言:javascript
复制
var icon_disabled = document.querySelector("#block-plywajaceikony p:nth-child(2)");
var disabled_list = document.querySelector("#block-plywajaceikony p:nth-child(5)");

        $(icon_disabled).mouseenter(function() {
            $(this).addClass("icons-visible");
            $(disabled_list).css("display","block");
        });

        $(disabled_list).on("mouseleave",function() {
            $(icon_disabled).removeClass("icons-visible");
            $(this).css("display","none");
            console.log("testing");
        });
代码语言:javascript
复制
body{
  color:white;
  
}

.collapsed{
  display: none;
}

#easy-id{
  background-color: black;
  padding:20px;
}


p{
   background-color:red;
}

p:nth-child(2){
  background-color:blue;
}

p:nth-child(5){
  background-color:green;
}
代码语言:javascript
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="block-plywajaceikony">
  <p>...</p>
  <p>Enter to Show</p>
  <p>...</p>
  <p>...</p>
  <p>Leave to Hide</p>
</div>

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57269288

复制
相关文章

相似问题

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