0

ここの壊れたコードの作業バージョン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();
});
4

3 に答える 3

1

APIリファレンスでわかることから、トグルは2つの関数をパラメーターとして取りません。そして、slideToggle に空の関数を渡しています (それが意図されている場合は、空の関数をパラメーターとして省略してください)。いくつかのエラーがあるだけで、正しい考え方をしているようです。

編集:間違ったトグルを見ていました。こちらのドキュメントを修正してください。

于 2012-08-14T18:44:15.630 に答える
0

他のボタンを元に戻すために、クリックステートメントを変更するだけで、答えはずっと私の顔にありました

$('#black').click(function() {
$('#blackbox').slideToggle('slow', function() {});
$('#yellowbox').slideUp();
    $('yellow').atr('src', ready.png)
});
于 2012-08-14T18:50:29.107 に答える
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');
});

フィドル

于 2012-08-14T18:54:46.123 に答える