2009-08-14 17 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> 

基本的に、コードの最初の部分での2行はすなわち

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ファイルのクラスです。その他のコーディング作業

私は$(minIcon)を$(img.minimise)に置き換えようとしましたが、何もしませんでした。 誰もが解決策を知っていますか?これにより

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

答えて

2

私の第一印象は、あなたがこれを交換したいということです

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

乾杯。私は、私が最初に書いたように、これをすでに試したと思ったが、うまくいった。おかげで – waqasahmed

0

あなたは<a>タグは必要ありません。 imgタグにもclickイベントがあります。

はまた、私はこれがtoggle機能のために良いユースケースだと思う:

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

それはすべてのクリックで関数呼び出しを交互に表示します。

+0

ありがとう、私はトグルの動作が予測できないことがわかります。私はjQuery 1.1.2を使用していますので多分それが問題ですか?しかし、私はアップグレードすることはできません。たとえば、行動すると、多くのスライドが上がり、1回のクリックで下にスライドします。それは私の最初のコードでコード化されている方法で可能ですか? – waqasahmed

+0

実際にdrs9222が解決しました。 – waqasahmed