我的图像很少,当其中一个被按下时,我希望其他图像淡出。
<body>
<script src="Scripts/jquery-2.0.3.min.js"></script>
<img class="images" id="img" src="/images/user1.png" height="100" width="100">
<img class="images" id="img2" src="/images/user2.png" height="100" width="100">
<img class="images" id="img3" src="/images/user3.png" height="100" width="100"><br>
<script>
$(document).ready(function () {
$('#img').mouseover(function () {
$(this).css('cursor', 'pointer');
});
$('#img2').mouseover(function () {
$(this).css('cursor', 'pointer');
});
$('#img3').mouseover(function () {
$(this).css('cursor', 'pointer');
});
});
$(document).on('click', '.images', function (event) {
$(event.target.id).fadeIn(1000);
$(".images:not(#" + event.target.id + ")").fadeTo("fast", 0.5);
});
</script>
</body>
问题是,当我按下第一个按下的不同图像时,所有图像都保持淡出。它看起来像我为压缩图像添加的fadein不起作用。
答案 0 :(得分:1)
有两点需要注意:
你最终得到了什么:
$(document).ready(function () {
$('img').click(function(event) {
$(event.target).fadeTo(500, 1.0);
$('img').not(event.target).fadeTo(500, 0.5);
});
});
答案 1 :(得分:0)
您需要将要点击的内容发送到fadeTo("fast",1)
$(document).on('click', '.images', function (event) {
$(".images:not(#" + event.target.id + ")").fadeTo("fast", 0.5);
$(this).fadeTo("fast", 1); // This is the new line
});
答案 2 :(得分:0)
我建议您删除代码并执行此操作:
<强> CSS 强>
.images {
cursor:pointer;
}
<强>的jQuery 强>
$(document).on('click', '.images', function () {
$('.images').not(this).fadeTo("fast", 0.5);
$(this).fadeTo(1000,1);
});
<强> jsFiddle example 强>
答案 3 :(得分:0)
我认为你的问题的答案更接近:
$("#"+event.target.id).fadeTo("fast" , 1);
$(".images:not(#" + event.target.id + ")").fadeTo("fast", 0.5);