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>

本质上,编码第一部分中的两行应该处理它,即

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

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

但我不知道为什么图像没有被替换。minimise是css文件中的一个类。其余的编码工作。

我尝试用 , 替换$(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 回答