如何在点击图片时更改图片?
问题描述:
我有以下图标,我想单击时更改它们中的每一个,并在单击另一图像后将图像更改为原始图像。我如何使用jQuery来做到这一点?如何在点击图片时更改图片?
<ul>
<li><a class="button" id="mobile-icon" href="#"><img src="images/mobile-icon.png" class="defaultimg"></a><h4>Mobile</h4></li>
<li><a class="button" id="music-icon" href="#" ><img src="images/music-icon.png" class="defaultimg"></a><h4>Music</h4></li>
<li><a class="button" id="camera-icon" href="#" ><img src="images/camera-icon.png" class="defaultimg"></a><h4>Camera</h4></li>
<li><a class="button" id="computers-icon" href="#" ><img src="images/computers-icon.png" class="defaultimg"></a><h4>Computers</h4></li>
</ul>
我只编写jquery到这个目标..我被卡住了。请帮助..
$(document).ready(function() {
$('.button').click(function(){
$('.clicked').removeClass("clicked")
$(this).addClass("clicked")
if ($(".button").hasClass("clicked")) {
var id = $(this).find('img');
var idToSRC = 'images/'+ this.id + '_hover' +'.png';
id.attr('src', idToSRC);
}else if($(".button").not("clicked")){
id.removeAttr('src', idToSRC);
}
});
答
改变你的代码如下图所示: -
$(document).ready(function() {
$('.button').click(function(){
var myid = $(this);
$('.clicked').removeClass("clicked")
myid.addClass("clicked")
var idToSRC = 'images/'+ this.id + '_hover' +'.png';
myid.find('img').attr('src', idToSRC);
$('.button').not(myid).each(function(){
$(this).find('img').attr('src', 'images/'+ this.id +'.png');
});
});
});//missed
工作例如: -
$(document).ready(function() {// when document is ready
$('.button').click(function(){ // when i click on a link
var myid = $(this); // create an object variable
$('.clicked').removeClass("clicked") //remove clicked class from all links
myid.addClass("clicked") //add clicked class to current clicked link
var idToSRC = 'images/'+ this.id + '_hover' +'.png'; //create new image path
myid.find('img').attr('src', idToSRC); // change image path of current clicked link
$('.button').not(myid).each(function(){ //for each other links except the current clicked link (not(myid) is doing that job to leave current clicked link)
$(this).find('img').attr('src', 'images/'+ this.id +'.png'); //change images to orignal-one
});
});
});// you missed this in your code
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul>
<li><a class="button" id="mobile-icon" href="#"><img src="images/mobile-icon.png" class="defaultimg"></a><h4>Mobile</h4></li>
<li><a class="button" id="music-icon" href="#" ><img src="images/music-icon.png" class="defaultimg"></a><h4>Music</h4></li>
<li><a class="button" id="camera-icon" href="#" ><img src="images/camera-icon.png" class="defaultimg"></a><h4>Camera</h4></li>
<li><a class="button" id="computers-icon" href="#" ><img src="images/computers-icon.png" class="defaultimg"></a><h4>Computers</h4></li>
</ul>
答
您按钮click
一直没有接近好像有些语法错误代码的总体工作正常,请在下面找到片断脱颖而出的详细信息。
$(document).ready(function() {
$('.button').click(function(){
$('.clicked').removeClass("clicked")
$(this).addClass("clicked")
if ($(".button").hasClass("clicked"))
{
var id = $(this).find('img');
//var idToSRC = 'images/'+ this.id + '_hover' +'.png';
var idToSRC = 'https://dummyimage.com/100x100/';
id.attr('src', idToSRC);
}
else if($(".button").not("clicked"))
{
id.removeAttr('src', idToSRC);
}
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul>
<li><a class="button" id="mobile-icon" href="#"><img src="https://dummyimage.com/100x100/fffg/000" class="defaultimg"></a><h4>Mobile</h4></li>
<li><a class="button" id="music-icon" href="#" ><img src="https://dummyimage.com/100x100/fffg/000" class="defaultimg"></a><h4>Music</h4></li>
<li><a class="button" id="camera-icon" href="#" ><img src="https://dummyimage.com/100x100/fffg/000" class="defaultimg"></a><h4>Camera</h4></li>
<li><a class="button" id="computers-icon" href="#" ><img src="https://dummyimage.com/100x100/fffg/000" class="defaultimg"></a><h4>Computers</h4></li>
</ul>
嗨对不起,我认为我错误地写了我的问题,如何将图像更改为其原始后,另一个图像被点击? – Untitled
谢谢!你能解释代码功能吗? – Untitled
@无题在评论中新增了解释 –