1

我将一些点击事件绑定到我拥有的一些图像。当其中一个被点击时,我想禁用所有图像,然后在两秒钟后添加回相同的点击事件。

到目前为止,我有以下内容:

 $('#pagination img').each(function(index){
        $( this ).bind ("click",function(){
               pageClick = true;
               pagendex = index*9;
           clearInterval(progresstracker);

             $("#progressbar").progressbar( "option", "value", 0);
             numSecondsPassed=0;
             $('#pagination img').each(function(index){
                $(this).unbind('click');

             });

            // alert("Page Index" + pageIndex);
              rotateImage();

             }).mouseover(function(){
                  $(this).css("cursor","pointer");
            });
        });

我正在取消绑定它们并且有效。但是我需要在两秒钟后将它们绑定回具有相同变量的单击事件并再次取消绑定。基本上当他们单击取消绑定 2 秒钟然后绑定回冲洗重复。

4

2 回答 2

0

您可以在取消绑定发生 2 秒后使用setTimeout()重新安排绑定。这可能意味着提取绑定/取消绑定的函数。


就在我的脑海中,我正在考虑类似的事情:

var bindAll = function () {
  $("...").each(function (index, item) {
     item.bind("click", function (event) {
          // ... do your work 
          unbindAll();
     });
};

var undbindAll = function () {
     $("...").unbind('click');
     setTimeout(bindAll, 2000);
} 

现在这假设您要取消绑定所有图像的事件,我理解对了吗?对不起,如果我错过了什么或者这对你的情况不起作用......

于 2011-07-14T10:07:14.100 回答
0

我不会取消绑定,因为您可以制作跟踪的全局变量,如果您可以单击按钮或不喜欢这样:

<html>
<head>
<script type="text/javascript" src="jquery-1.6.2.min.js"></script>
<script type="text/javascript">
    var buttonClickable = true;
$(document).ready(function() {
    $(".button").click(function() {
        if (buttonClickable)
        {
            $("body").append($(this).text());
            buttonClickable = false;
            setTimeout("buttonClickable = true; alert('passed');",2000);
        }
        else
        {

        }
    });
});
</script>
</head>
<body>
<div class="button">Button1</div>
<div class="button">Button2</div>
</body>
</html>
于 2011-07-14T10:24:08.153 回答