javascript禁用第二个onclick

时间:2011-12-22 03:46:51

标签: javascript onclick

我有一个javascript:

<script src="http://ajax.microsoft.com/ajax/jquery/jquery-1.4.2.min.js" type="text/javascript"></script>
<script type="text/javascript">

    var Delay = 10;//Seconds after them clicking the link, the gateway vanishes. 
    function setupgateway()
    {

        var Left = $(window).width() /2;
                Left = Left - $('#gatewaydiv').width()/2;

        var Top = $(window).height() /2;
        Top = Top - $('#gatewaydiv').height()/2;

        $('#gatewaydiv').css('top', Top+'px').css('left', Left+'px').css('display', 'inline');
        $('#gatewayDimmer').width($('html').width());
        $('#gatewayDimmer').height($('html').height());
        $('#gatewayDimmer').css({display:'block', position:'fixed'});
    }

    function removegateway()
    {
        $('#gatewaydiv').css('display', 'none');
        $('#gatewayDimmer').css('display','none');
    }

    $(document).ready(function()
    {
                $('.my-link').click(function(e){
                e.preventDefault();

        $('.offerlink').click(function()
        {
            setTimeout('removegateway()', Delay*10);
        });

        setupgateway();
                });
    });
</script

...弹出窗口,如果你愿意的话,通过点击一个图像来调用/触发,然后在点击弹出窗口中的链接x秒后消失。我需要将图像(呼叫者/触发器)转到它(它们)链接到的位置再次点击,而不是调用javascript。第一次点击后我该怎么做才能禁用javascript?

2 个答案:

答案 0 :(得分:3)

使用.one()代替.click()

$('.my-link').one('click', function(e){
    e.preventDefault();

    $('.offerlink').click(function()
    {
        setTimeout(removegateway, Delay*10);
    });

    setupgateway();
});

.one().click()类似,但只运行一次,然后解除绑定。

答案 1 :(得分:0)

将用于绑定点击的代码放入函数中,以便您可以重复使用它。在显示网关时解除绑定,并在删除网关时重新绑定它。

注意:setTimeout的时间单位是毫秒,因此Delay*10会给你0.1秒,而不是10秒。

function bindLink() {
  $('.my-link').click(function(e){
    e.preventDefault();

    $('.offerlink').click(function() {
      window.setTimeout(function() {
        removegateway();
        bindLink();
      }, Delay * 1000);
    });

    setupgateway();
    $('.my-link').unbind('click');
  });
}


$(document).ready(function() {
  bindLink();
});