2013-01-20 134 views
0

我有一個放大的圖像從拇指到大由ajax使用點擊。jQuery ajax切換回到點擊img src

他們是否使用相同的HTML元素只需更換IMG SRC 例如:

src="image_thumb.jpg" 

開關

src="image_large.jpg" 

我的問題是,如何當用戶切換回拇指圖像再次點擊。

回答

1

由於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'); 
    } 
}); 

DEMO http://jsfiddle.net/PSFeJ/

+0

謝謝,現在就試試吧 – vzhen

+0

這個可以,但是你能解釋$(this)和var $ this = $(this)嗎? – vzhen

+0

在事件回調中,'this'引用了DOM元素。所以,你想「jqueryfy」你的DOM元素來操縱它,這就是'$ this'的原因。即使jQuery將多個調用緩存到同一個DOM元素,如果您要對其執行多個操作,始終將您的jquery對象與一組元素分配給一個變量是一種很好的做法 – pocesar

1

您可以使用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進行任何更改,以適應大的圖像或縮略圖。

+0

切換是要走的路。在第一個回調中,使用AJAX獲取圖像,然後在第二個回調中將其替換爲拇指的src。 –

+0

我只是檢查了.toggle(),它在1.8中表示棄用,並且將在1.9中刪除。任何替換.toggle()? – vzhen

+0

看起來沒有什麼:[看到這篇文章](http://stackoverflow.com/questions/14338078/equivalent-of-deprecated-jquery-toggle-event) – mgoffin