jQuery mouseenter()和mouseleave()无法正常工作

时间:2016-04-24 13:08:30

标签: javascript jquery html css button

我有两个简单的脚本html:

<html>
<body>
<style>
.myBtn{
    display: none
}
.myBtnReg{
    display: block
}
</style>
<button class="myBtnReg" id="btn1" >Click Me!</button>
<script src="jquery-1.11.2.min.js"></script>
<script src="js.js"></script>
</body>
</html>

和javascript:

$(function(){
    $("button").mouseenter(function(){
        $(this).attr("class", "myBtn");
    });
    $("button").mouseleave(function(){
        $(this).attr("class", "myBtnReg");
    });
});

我试图在鼠标进入时按钮更改类的效果,当鼠标离开时将其更改回来,上面的代码似乎无法正常工作,当我将鼠标放在按钮上时闪烁,所以我认为我出于某种原因不断改变课程。

2 个答案:

答案 0 :(得分:2)

当您将鼠标悬停在button上时,您可以将div置于button内,然后将div设置为toggleClass(您还需要设置固定高度在div)

&#13;
&#13;
$('div').hover(function() {
  $(this).find('button').toggleClass('myBtn');
});
&#13;
div {
  height: 50px;
}
.myBtn {
  display: none
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>
  <button class="myBtnReg" id="btn1">Click Me!</button>
</div>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

你的风格应该像

.myBtn{
    background-color:RED;
}
.myBtnReg{
    background-color:Green;
}

你的总html就像这样

<html>
<body>
<style>
  .myBtn{
        background-color:RED;
    }
    .myBtnReg{
        background-color:Green;
    }
</style>
<button class="myBtnReg" id="btn1" >Click Me!</button>
<script src="https://code.jquery.com/jquery-2.2.3.min.js" integrity="sha256-a23g1Nt4dtEYOj7bR+vTu7+T8VP13humZFBJNIYoEJo=" crossorigin="anonymous"></script>
<script src="js.js"></script>
</body>
</html>