点击即可更改img src
我在论坛上搜索了一个特定的问题,但我找到的所有解决方案都不能解决我的问题。
我左边有一张图片。 在右边,我有不同的话。 因此,当我点击特定名称时,我希望图片更改为我在图像文件夹中的任何图片。 基本上,我希望图像的来源发生变化。 这是我的索引的代码:
Mtl SF
这是我试过的两个jqueries公式:
$('#mtl').click(function(){ $('#picture').attr()({ 'src':'images/short.png' }) })
和:
$('#mtl').click(function(){ $('#picture').attr('src', 'images/short.png'); });
你的第二次尝试是正确的。 这是工作的jsFiddle: http : //jsfiddle.net/MEHhs/
所以代码应该是:
HTML:
Mtl SF
JS:
$('#mtl').click(function(){ $('#picture').attr('src', 'http://profile.ak.fbcdn.net/hprofile-ak-ash3/41811_170099283015889_1174445894_q.jpg'); });
我添加了一些在谷歌上发现的现有图像。
jsBin演示
- 为所有触发器添加一个类
- 创建名为:
mtl.png
和contact.png
图像
并使用:
$('.button').click(function(){ var idToSRC = 'images/'+ this.id +'.png'; $('#picture').attr('src', idToSRC); });
虽然以上不是用户友好的原因,但是加载新图像会有一些延迟……
更好的方法是使用单个(所谓的) 精灵图像,包含所有您想要的图像,将其设置为DIV背景图像,并在点击时更改DIV的“背景位置”!
使用SPRITES演示2
将您想要的左侧位置存储到数据属性中:
CSS:
#picture{ width:25px; height:25px; background:url(/images/sprite.png) no-repeat; }
检索该数据并移动packgroundPosition:
$('.button').click(function(){ var bgpos = $(this).data('bgpos'); $('#picture').css({backgroundPosition: -bgpos+' 0'}) });
这对于第二个版本看起来都很好,请确保将DOM调用包装在文档就绪函数中,该函数可以写成……
$(document).ready(function() { ... });
要么…
$(function() { ... });
所以你得到……
$(function() { $('#mtl').click(function(){ $('#picture').attr('src', 'images/short.png'); }); });
您可以在任何链接上将其用作内联函数,而不是将事件侦听器添加到每个链接类
function changeurl(theurl){ $('.myimage').attr('src', theurl); }
第二个工作正常但你必须使用显式路径而不是相对路径:
$('#mtl').click(function(){ $('#picture').attr('src', '/images/short.png'); });