0

2 つの要素 (1 つはボタン) があり、ボタンを押すと別の要素がフェードインして留まるようにしたいと考えています。ボタンをもう一度押すと、フェードアウトします。私が得たのは、ボタンをもう一度押す前に自動的にフェードアウトすることです。どのような「停止」を使用する必要がありますか? ありがとう。

Jクエリ:

$(document).ready(function(){ 
  $("#first").click(function() { 
    $("#box").fadeIn("slow");
  });

  $("#first").click(function() { 
    $("#box").fadeOut("slow"); 
  });
}); 
4

3 に答える 3

4
$(document).ready(function(){ 
  $("#first").click(function() { 
    $("#box").fadeToggle("slow");
  });
}); 

クリックは、イベントが発生したときに発生している関数のスタックに関数を追加します。あなたのコードでは、ユーザーが要素をクリックすると、両方のことを同時に行っています。

于 2013-07-10T13:54:47.963 に答える
0

ボタンの状態を指定することもできます...これは、トグルバージョンがない機能 ( など) を含め、あらゆる種類の機能で機能しますfadeToggle。このような:

var buttonFaded = false;
$(document).ready(function(){ 
    $("#first").click(function() { 
        if (buttonFaded) {
            $("#box").fadeIn("slow");
            buttonFaded = true; // even better to put this inside the fadeIn callback
        else {
            $("#box").fadeOut("slow");
            buttonFaded = false;
        }
    });
}); 

編集

最も基本的な使用法だけが必要な場合は、@fsw の例が完全に機能します。ただし、カスタマイズやより複雑な使用法が必要な場合は、次のようにする必要があります。

ps反対票を投じた人への挨拶-いつか理解できることを願っています

于 2013-07-10T13:56:26.783 に答える