【发布时间】:2013-01-03 19:17:45
【问题描述】:
我通过 ajax 使用 click 将图片从拇指放大到大。
他们使用相同的 html 元素只是替换了 img src 例如:
src="image_thumb.jpg"
切换到
src="image_large.jpg"
我的问题是,当用户再次点击时如何切换回拇指图像。
【问题讨论】:
标签: jquery ajax thumbnails
我通过 ajax 使用 click 将图片从拇指放大到大。
他们使用相同的 html 元素只是替换了 img src 例如:
src="image_thumb.jpg"
切换到
src="image_large.jpg"
我的问题是,当用户再次点击时如何切换回拇指图像。
【问题讨论】:
标签: jquery ajax thumbnails
由于 toggle 在 1.8 中已被弃用并在 1.9 中被删除,您应该这样做
$('img').on('click', function(){
var $this = $(this);
if ($this.data('originalSrc')){
$this.prop('src', $this.data('originalSrc'));
$.removeData(this, 'originalSrc');
} else {
$this.data('originalSrc', $this.attr('src'));
$this.prop('src', 'image_large.jpg');
}
});
【讨论】:
this指的是DOM元素。所以,你想“jqueryfy”你的 DOM 元素来操作它,这就是$this 的原因。即使 jQuery 缓存了对同一个 DOM 元素的多次调用,如果要对其执行多个操作,最好始终将带有一组元素的 jquery 对象分配给一个变量
您可以使用toggle-event API 来使用两个功能:一个是从拇指变成大拇指,另一个是从大拇指变成拇指。通过使用切换,每次用户点击时,它将在两者之间交替。
如果你想尝试类方法,你可以这样做:
$('img').on('click', function(){
if ($(this).hasClass('thumb')){
$(this).removeClass('thumb').addClass('large');
//set your large image here
} else {
$(this).removeClass('large').addClass('thumb');
//set your thumb image here
}
});
这里的好处是您可以使用 CSS 进行任何更改以适应大图像或缩略图。
【讨论】: