0

画像をクリックしたら、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').bind('click', 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");

しかし、なぜ画像が置き換えられないのかわかりません。minimisecssファイルのクラスです。残りのコーディングは機能します。

、に置き換えてみまし$(minIcon)たが$(this)、うまくいき$(img.minimise)ません。誰かが解決策を知っていますか?

4

2 に答える 2

2

私の第一印象は、これを置き換えたいということです。

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

これとともに:

var minIcon = $('img.minimise', this.parentNode.parentNode);
于 2009-08-14T17:59:46.133 に答える
0

タグは必要ありません<a>。imgタグにはクリックイベントも含めることができます。

また、これはトグル機能の良いユースケースだと思います。

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

クリックするたびに関数呼び出しが交互に行われます。

于 2009-08-14T18:00:28.020 に答える