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

…一个弹出窗口,如果你愿意,这是调用/触发点击一个图像(s),并消失后的x秒量弹出窗口中的链接被点击。我需要的图像(s)(调用者/触发器)去哪里(他们)链接到一旦再次点击,不调用javascript。我要做些什么来禁用javascript后第一次点击?

.one()代替.click():

$('.my-link').one('click', function(e){
    e.preventDefault();
    $('.offerlink').click(function()
    {
        setTimeout(removegateway, Delay*10);
    });
    setupgateway();
});

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

将用于绑定单击的代码放入函数中,以便您可以重用它。显示网关时取消绑定,移除网关时重新绑定。

注意: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();
});

相关内容

最新更新