我有4 button
个。我试图在opacity
上点亮hover
。
问题:每次hover
时,所有4 button
更改opacity
都会变亮,我只希望1 button
在opacity
之后更改hover
的时间。
这是我尝试过的:
$(document).ready(function() {
$('button').mouseenter(function() {
$('button').fadeTo('fast', 1);
});
$('button').mouseleave(function() {
$('button').fadeTo('fast', 0.5);
});
});
不工作
需要聪明人的好解决方案!
答案 0 :(得分:1)
您可以使用$(this)
$(document).ready(function() {
$('button').mouseenter(function() {
$(this).fadeTo('fast', 1);
});
$('button').mouseleave(function() {
$(this).fadeTo('fast', 0.5);
});
});

button {
background: red
}

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<button id="button1">button1</button>
<button id="button2">button2</button>
<button id="button3">button3</button>
<button id="button4">button4</button>
&#13;
或者您可以在每个ID
上使用button
,这是更多的代码,但仍然是一个解决方案。
$(document).ready(function() {
$('#button1').mouseenter(function() {
$('#button1').fadeTo('fast', 1);
});
$('#button1').mouseleave(function() {
$('#button1').fadeTo('fast', 0.5);
});
$('#button2').mouseenter(function() {
$('#button2').fadeTo('fast', 1);
});
$('#button2').mouseleave(function() {
$('#button2').fadeTo('fast', 0.5);
});
$('#button3').mouseenter(function() {
$('#button3').fadeTo('fast', 1);
});
$('#button3').mouseleave(function() {
$('#button3').fadeTo('fast', 0.5);
});
$('#button4').mouseenter(function() {
$('#button4').fadeTo('fast', 1);
});
$('#button4').mouseleave(function() {
$('#button4').fadeTo('fast', 0.5);
});
});
&#13;
button {
background: red
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<button id="button1">button1</button>
<button id="button2">button2</button>
<button id="button3">button3</button>
<button id="button4">button4</button>
&#13;
答案 1 :(得分:1)
您可以在函数中使用this
或更确切地说$(this)
来获取对触发事件的按钮的引用。
$('button').mouseenter(function() {
$(this).fadeTo('fast', 1);
});
$('button').mouseleave(function() {
$(this).fadeTo('fast', 0.5);
});
答案 2 :(得分:0)
以上所有答案都很棒!
但如果你只是在寻找效果,你也可以使用CSS3和一些技巧!
取自:https://bootstrapbay.com/blog/css-transitions-buttons/
button {
background: #428BCA;
color: #fff;
font-family: Sans-serif;
font-size: 20px;
height: 60px;
width: 150px;
line-height: 60px;
margin: 25px 25px;
text-align: center;
border: 0;
transition: all 0.3s ease 0s;
}
/** Effect **/
button {
opacity: 1;
}
button:hover {
opacity: 0.75;
}
&#13;
<body>
<button>Fade -2</button>
<button>Fade -1</button>
<button>Fade 1</button>
<button>Fade 2</button>
<button>Fade 3</button>
</body>
&#13;
答案 3 :(得分:0)
使用$(this)
$(document).ready(function() {
$('button').mouseenter(function() {
$(this).fadeTo('fast', .5);
});
$('button').mouseleave(function() {
$(this).fadeTo('fast', 1);
});
});
答案 4 :(得分:0)
在函数中使用$(this)。
$(document).ready(function() {
$('button').mouseenter(function() {
$(this).fadeTo('fast', 1);
});
$('button').mouseleave(function() {
$(this).fadeTo('fast', 0.5);
});
});