我在javascript中遇到了mouseenter和mouseleave事件的问题。奇怪的是,如果用click或dblclick事件替换这两个事件,代码就可以工作。希望你能在这里帮助我。 PS:我正在使用铬。 不知道如何让js在小提琴上工作......现在
这是代码:
https://jsfiddle.net/frempong69/t7du0kte/
(function() {
window.onload = function() {
var box = document.getElementsByClassName("box")[0];
var change = function() {
box.style.backgroundColor = "green";
};
var normal = function() {
box.style.backgroundColor = "blue";
}
addEventListener("click", change, false);
addEventListener("mouseleave", normal, false);
};
}());
答案 0 :(得分:2)
您正在向window
对象添加mouseleave / mouseenter处理程序。 click处理程序有效,因为它会向窗口对象冒泡,但mouseenter和mouseleave事件不会冒泡,因此附加到窗口对象的侦听器不会被触发
您需要将listerns添加到box元素
(function() {
window.onload = function() {
var box = document.getElementsByClassName("box")[0];
var change = function() {
box.style.backgroundColor = "green";
};
var normal = function() {
box.style.backgroundColor = "blue";
}
box.addEventListener("mouseenter", change, false);
box.addEventListener("mouseleave", normal, false);
};
}());
.box {
background-color: red;
width: 400px;
height: 200px;
margin: 50px auto;
position: relative;
}
.box:after {
content: " ";
width: 0px;
height: 0px;
border-top: 100px solid transparent;
border-right: 100px solid transparent;
border-bottom: 100px solid transparent;
border-left: 100px solid red;
position: absolute;
left: 100%;
top: 50%;
margin-top: -100px
}
<div class="box">
</div>
答案 1 :(得分:0)
你可以这样做
box.onmouseenter = change;
box.mouseleave = normal;
答案 2 :(得分:0)
你必须改变
box.addEventListener("click", change, false);
box.addEventListener("mouseout", normal, false);
用这个
<asp:CheckBox ID="ChkLeads" runat="server"
Checked='<%#bool.Parse(Eval("columnName").ToString())%>' />
答案 3 :(得分:0)
你只需使用这个
<div class="box" onmouseover="style.background='green'" onmouseout="style.background='red'">
</div>
它的工作