2009-08-14 78 views
0

我想擴展一些JQuery代碼來替換一個圖像,一旦我點擊它。 我有這樣的:JQuery替換圖像問題

var minimiseContent = function(e) 
{ 
    var targetContent = $('div.itemContent', this.parentNode.parentNode); 
    if (targetContent.css('display') == 'none') { 
     targetContent.slideDown(300); 
     var minIcon = $('minimise', this.parentNode.parentNode); 
     $(minIcon).attr("src", "../IMG/btnMinimise.png"); 

    } else { 
    targetContent.slideUp(300); 
     var minIcon = $('minimise', this.parentNode.parentNode); 
     $(minIcon).attr("src", "../IMG/btnMaximise.png"); 

    } 
    return false; 
}; 

與這叫做:

$( 'a.minimise')綁定( '點擊',minimiseContent)。

,並宣佈像這樣:

<a href="#" class="minimise"><img src="../IMG/btnMinimise.png" class="minimise" /></a> 

本質上的兩行編碼的第一部分,應當予以受理,即

var minIcon = $('minimise', this.parentNode.parentNode); 
      $(minIcon).attr("src", "../IMG/btnMinimise.png"); 

 var minIcon = $('minimise', this.parentNode.parentNode); 
     $(minIcon).attr("src", "../IMG/btnMaximise.png"); 

但我不知道爲什麼圖像沒有被替換。最小化是css文件中的一個類。其餘的編碼工作。

我試圖用$(this),$(img.minimise)替換$(minIcon),但沒有任何工作。 有誰知道任何解決方案?

回答

2

我的第一印象是,你要替換此:

var minIcon = $('minimise', this.parentNode.parentNode); 

有了這個:

var minIcon = $('img.minimise', this.parentNode.parentNode); 
+0

乾杯。我以爲我已經嘗試過了 - 正如我的初始文章所寫的那樣 - 但它恰巧工作。謝謝 – waqasahmed 2009-08-14 19:07:45

0

你不需要<a>標籤。 img標籤也可以有一個點擊事件。

另外,我覺得這是一個很好的用例爲toggle功能:

$("img.minimise").toggle(
    function() { 
    $(this).attr("src", "../IMG/btnMinimise.png") 
    }, 
    function() { 
    $(this).attr("src", "../IMG/btnMaximise.png"); 
    } 
); 

將交替的每次點擊函數調用。

+0

謝謝,但我發現切換的行爲是不可預知的。我正在使用jQuery 1.1.2所以也許這就是問題所在?但我無法升級。舉例來說,行爲有許多向上滑動,並且只需一次點擊即可滑下。它可能通過它在我的初始代碼中編碼的方式嗎? – waqasahmed 2009-08-14 19:02:25

+0

其實drs9222已經解決了它..但再次感謝 – waqasahmed 2009-08-14 19:08:17