2010-11-08 3 views
2

почему это не работает? и как я могу его исправить?о 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

Вы являетесь пользователем SO в течение 1 года, и до сих пор нет форматирования кода? – RPM1984

+0

Что не работает? Есть ли ошибка? – rahul

ответ

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); 
}); 

You can test it out here. В вашем случае, хотя, это легче просто проверить, если <div> скрыта, а не ООН/повторно связать что-нибудь, например:

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

You can test that version here.

Смежные вопросы