我有一个#myObject
元素。
我尝试将#myObject
的背景更改为#000
,当鼠标悬停在其上并在将鼠标悬停时将其背景更改回#ffff00
但是,当用户点击它时,我想将#myObject
的背景更改为#FFF
。
我在onMouseOver,onMouseOut和onClick上使用了3个函数。
但是在用户点击之后," onMouseOut"功能被触发。
用户在点击后onClick
悬停后,如何让#myObject
后台切换功能正常工作?
<div id="myObject" onMouseOver='objHover(this.id);' onMouseOut='objMouseOut(this.id);' onclick='objClick(this.id);'></div>
function objClick(id) {
document.getElementById('captchaResposta').value = id;
$('#'+ id).css('background','#FFF');
}
function objHover(id) {
document.getElementById('captchaResposta').value = id;
$('#'+ id).css('background','#000');
}
function objMouseOut(id) {
document.getElementById('captchaResposta').value = id;
$('.imagemCaptcha').css('background','#ffff00');
}
答案 0 :(得分:0)
以下内容应该有所帮助,它使用变量objSelected
来跟踪鼠标单击和mouseOut函数中的检查。您仍然需要弄清楚何时将对象的颜色还原为它的原始颜色
<div id="myObject" onMouseOver='objHover(this.id);' onMouseOut='objMouseOut(this.id);' onclick='objClick(this.id);'></div>
var objSelected = false;
function objClick(id) {
document.getElementById('captchaResposta').value = id;
$('#'+ id).css('background','#FFF');
objSelected = true;
}
function objHover(id) {
document.getElementById('captchaResposta').value = id;
$('#'+ id).css('background','#000');
}
function objMouseOut(id) {
document.getElementById('captchaResposta').value = id;
if (objSelected == false)
{
$('.imagemCaptcha').css('background','#ffff00');
}
}
答案 1 :(得分:0)
为什么不使用CSS hover
伪类来更改背景,并仅将JavaScript用于点击事件?这样,当鼠标离开元素时,它仍然保持单击时的颜色
function objClick(id) {
$("#myObject").css('background', '#FFF');
}
#myObject {
width: 100px;
height: 100px;
background: #ffff00;
}
#myObject:hover {
background: #000000;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="myObject" onclick='objClick(this.id);'></div>
答案 2 :(得分:0)
“onMouseOver,onMouseOut和onClick。”
我认为您可以使用应用于元素的类(而不是更改颜色)。单击时,您可以添加imageView.kf_setImageWithURL(NSURL(string: "http://your_image_url.png")!)
类(或您要使用的任何名称)。然后,在mouseout事件上,您可以检查选择器是否具有clicked
类:如果没有,那么您可以添加clicked
类(及其相应的背景颜色)。它可以很好地完成这项工作。