单击更改另一个元素源

时间:2012-08-14 18:28:16

标签: javascript jquery attributes image

此处破解代码的工作版本http://jsfiddle.net/Uey6W/8/

无法确定如何更改另一个元素的属性形成点击功能

狙击

$('#black').click(function() {
$('#blackbox').slideToggle('slow', function() {});
$('#yellowbox').slideUp();
});

这里点击我希望不仅隐藏其他元素,还要还原其他按钮

基本上,当另一个按钮切换到打开状态时,如何将另一个按钮切换到关闭状态

$("#black").toggle(
    function () {
      var src = $(this).attr("src").replace("ready.png", "pressed.png");
      $(this).attr("src", src);
     },
    function () {
      var src = $(this).attr("src").replace("pressed.png", "ready.png");
      $(this).attr("src", src);
    }
);
$('#black').click(function() {
$('#blackbox').slideToggle('slow', function() {});
$('#yellowbox').slideUp();
});

$("#yellow").toggle(
    function () {
      var src = $(this).attr("src").replace("ready.png", "pressed.png");
      $(this).attr("src", src);
     },
    function () {
      var src = $(this).attr("src").replace("pressed.png", "ready.png");
      $(this).attr("src", src);
    }
);
$('#yellow').click(function() {
$('#yellowbox').slideToggle('slow', function() {});
$('#blackbox').slideUp();
});

3 个答案:

答案 0 :(得分:1)

从我在api reference看到的内容,切换不会将两个函数作为参数。你将一个空函数传递给slideToggle(只是将空函数省略为一个参数,如果这是意图)。看起来你的思路很正确,只有一些错误。

编辑:看错了切换。正确的文档here

答案 1 :(得分:0)

一直在我的脸上回答是为了恢复其他按钮我只是改变了点击声明

$('#black').click(function() {
$('#blackbox').slideToggle('slow', function() {});
$('#yellowbox').slideUp();
    $('yellow').atr('src', ready.png)
});

答案 2 :(得分:0)

通过这样做,你几乎可以完成同样的事情:

var btn1 = "ready.png",
    btn2 = "pressed.png";

$("#black, #yellow").on('click', function() {
    $("#black, #yellow").not(this).prop('src', this.src);
    this.src = this.src==btn1 ? btn2 : btn1;
    $('#'+this.id+'box').slideToggle('slow').siblings('div').slideUp('slow');
});

FIDDLE