防止多次点击链接

时间:2014-04-11 19:29:35

标签: jquery hyperlink click

我想让用户只在每个链接中点击一次。这是为了避免标签和其他内容的进一步问题,并保持对我正在进行的系统的控制。

所以,我尝试使用“一个”方法,但似乎没有工作,只有我提出的警告:

  

$(窗口).load(函数(){

     

$('。lockit')。one('click',function(){alert('你不能点击这里   再次'); });

     

});

有关如何进行的任何想法?我正在使用JQuery 1.8.1。

提前致谢。

5 个答案:

答案 0 :(得分:1)

您可以尝试.preventDefault功能。

var count = 0;
$('.lockit').one('click', function( event ){
  alert('you cannot click here again');
  count++;

  if ( count > 0 ) {
   event.preventDefault;
   }

 });

});

答案 1 :(得分:1)

假设您只有一个需要阻止的链接,

$(document).ready(function() {
    var clicked = false;
    $(".block-link").on('click', function(e) {
        if(clicked) {
            e.preventDefault();
            alert('You can only click once');
        } else {
            clicked = true;
        }
    });
});

否则,如果您想对类.blocked-link

的每个链接执行此操作
$(document).ready(function() {
    $(".blocked-link").each(function() {
        // Set initial data attribute
        $(this).data('clicked', 0);
        $(this).on('click', function(e) {
            if($(this).data('clicked') == 1) {
                e.preventDefault();
                alert('You can only click this link once');
                return false;
            } else {
                $(this).data('clicked', 1);
            }
        });
    });
});

用于多个链接的jsFiddle:http://jsfiddle.net/3C63m/


编辑:包含自定义onClick功能

$(document).ready(function() {
    $(".blocked-link").each(function() {
        // Set initial data attribute
        $(this).data('clicked', 0);
        $(this).on('click', function(e) {
            if($(this).data('clicked') == 1) {
                e.preventDefault();
                alert('You can only click this link once');
                return false;
            } else {
                $(this).data('clicked', 1);
                /* PLACE YOUR onClick ACTIONS HERE */
            }
        });
    });
});

答案 2 :(得分:0)

您可能只是在现有的处理程序中添加处理程序    HTML

<button class="lockit" type="button" onclick="alert('Click')">One</button>

JS

$('.lockit').on('click', function(){
this.onclick="";
} );

<强> FIDDLE

答案 3 :(得分:0)

试一试:

$('.lockit').on('click', function(){
        alert('you cannot click here again'); 
        $(this).unbind('click');
    });

答案 4 :(得分:0)

单击时可以为其添加类。然后在单击时检查它是否具有该类。如果是这样,请不要显示警报。

$('.lockit').click(function(e){
    var aTag = $(this);
    if(aTag.hasClass('clicked'))
        return false;

    alert('you cannot click here again')
    aTag.addClass('clicked')
});

<强> JsFiddle

相关问题