2

なぜこれが機能しないのですか?どうすれば修正できますか?

<!DOCTYPE html>
<html>
<head>
    <script src="http://code.jquery.com/jquery-latest.min.js"></script>
    <script>
        $(document).ready(function(){
            $("button").click(function(){
            $("button").unbind("click");
            $("div").show().fadeOut("slow",function(){
                $("button").bind("click");
            });
            })
        })
    </script>
    <style>
        div{width:600px;height:600px;display:none;background:red;}
    </style>
</head>
<body>
    <button>test</button>
    <div></div>
</body>
</html>
4

1 に答える 1

5

イベントをにバインドするかを指定していません(そこでは何の仮定も行わず、サイレントに何もバインドしません)。ただし、保存する名前付き関数を使用してこれを行うことができます。たとえば、次のようになります。click$("button").bind("click");

$(document).ready(function() {
  function clickHandler() { 
    $("button").unbind("click");
    $("div").show().fadeOut("slow",function() {
      $("button").bind("click", clickHandler);
      //or: $("button").click(clickHandler);
    });
  }
  $("button").click(clickHandler);
});

ここでテストできます。ただし、あなたの場合は、<div>が非表示になっているかどうかを確認する方が簡単で、次のように何もアン/再バインドしないでください。

$(function() {
  $("button").click(function () { 
    $("div:hidden").show().fadeOut("slow");
  });
});

ここでそのバージョンをテストできます

于 2010-11-08T03:41:52.910 に答える