2010-11-08 3 views
2

pourquoi cela ne fonctionne pas? et comment puis-je le réparer?à propos de jquery bind unbind

<!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> 
+0

vous avez été un utilisateur de SO pendant 1 an, et toujours pas de formatage du code ?? – RPM1984

+0

Qu'est-ce qui ne fonctionne pas? Y a-t-il une erreur? – rahul

Répondre

5

Vous ne spécifiez pas ce pour lier l'événement à click avec $("button").bind("click"); (il ne fait aucune hypothèse là, il se lie silencieusement rien). Vous pouvez le faire avec une fonction nommée vous stockez si, par exemple:

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

You can test it out here. Dans votre cas, cependant, il est plus facile de vérifier que si le <div> est caché, et ne aime pas un/quoi que ce soit re-lier, ceci:

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

You can test that version here.