JQuery - how can i change src image on link click
I am using JQuery gallery to display an image with an opaque slide description. I need to add a list of links so that the user can override the image shown when the link is clicked. How can I override the gallery image when the link is clicked?
$(document).ready(function() {
//Execute the slideShow
slideShow();
})
function slideShow() {
$('#gallery a').css({opacity: 0.0});
$('#gallery a:first').css({opacity: 1.0});
$('#gallery .caption').css({opacity: 0.7});
$('#gallery .caption').css({width: $('#gallery a').find('img').css('width')});
$('#gallery .content').html($('#gallery a:first').find('img').attr('rel'))
.animate({opacity: 0.7}, 400);
setInterval('gallery()',6000);
}
function gallery() {
var current = ($('#gallery a.show')? $('#gallery a.show') : $('#gallery a:first'));
var next = ((current.next().length) ? ((current.next().hasClass('caption'))? $('#gallery a:first') :current.next()) : $('#gallery a:first'));
var caption = next.find('img').attr('rel');
next.css({opacity: 0.0})
.addClass('show')
.animate({opacity: 1.0}, 1000);
current.animate({opacity: 0.0}, 1000)
.removeClass('show');
$('#gallery .caption').animate({opacity: 0.0}, { queue:false, duration:0 }).animate({height: '1px'}, { queue:true, duration:300 });
$('#gallery .caption').animate({opacity: 0.7},100 ).animate({height: '100px'},500 );
$('#gallery .content').html(caption);
}
<div id="gallery">
<a href="#" class="show">
<img src="images/storm2.jpg" alt="text in here" title="" width="480" height="260"
rel="<h3>Description</h3>description goes in here "</a> <a href="#">
<img src="images/storm1.jpg" alt="text in here" title="" width="480" height="260"
rel="<h3>Description 2</h3>" />
</a>...... ...... ......
<div class="caption">
<div class="content">
</div>
</div>
</div>
<div class="clear">
</div>
+2
source to share
2 answers
jQuery('#link').click(function() {
jQuery('#image').attr('src',jQuery(this).attr('alt'));
}
This method is kind of a hack where you fool a bit and store the src path in the alt tab of the link.
If you want to do this in the book, I offer you a separate logic from visual effects. For example, you create an array like this:
myArray['link1'] = 'url1';
myArray['link2'] = 'url2';
The Array key will be the same as the link id tag:
<a id="link1" href="foo">bar</a> etc...
If you do it like this, JavaScript changes like this:
jQuery('#link').click(function() {
jQuery('#image').attr('src',myArray[this.id]);
}
+1
source to share