我想让用户只在每个链接中点击一次。这是为了避免标签和其他内容的进一步问题,并保持对我正在进行的系统的控制。
所以,我尝试使用“一个”方法,但似乎没有工作,只有我提出的警告:
$(窗口).load(函数(){
$('。lockit')。one('click',function(){alert('你不能点击这里 再次'); });
});
有关如何进行的任何想法?我正在使用JQuery 1.8.1。
提前致谢。
答案 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 强>