我想计算一个 div 点击的次数。例如,
<div id="id1">
click here..
</div>
<div id="id2">
click here..
</div>
......
我只想单击这些 div 一次。如果用户第二次点击,则会显示错误消息。任何人都可以帮忙吗?请!
您可以使用.one
绑定长期错误消息处理程序:
$("div").one("click", function (event) {
alert("No error.");
$(this).on("click.error", function (event) {
alert("Error from now on.");
});
});
通过使用.one
,我们可以保证外部处理程序只会运行一次,然后立即解除绑定。这已经足够了,因为它第一次运行时,它会设置一个新的处理程序(在 下click.error
),它将在文档的持续时间内完成,“防止”任何进一步的点击。
小提琴:http: //jsfiddle.net/EJ6CL/1/
如果您不知道需要多少个 div,您可以将类添加到这些 div 中并构建一个带有单击元素的数组,如下所示:
var clickedArr = new Array();
var clickedArr = [];
$('.SpecialDiv').click(function(){
if(jQuery.inArray($(this).attr('id'),clickedArr)!=-1){
alert("Error already clicked");
}else{
clickedArr.push($(this).attr('id'));
}
});
在此示例中,您需要将 SpecialDiv(它只是一个类名,您可以更改它,它仅用于标记这些可点击的 div)类到您的代码中
<div class="SpecialDiv" id="id1">
click here..
</div>
<div class="SpecialDiv" id="id2">
click here..
</div>
......
$('div[id^=id]').click(function(){
if( $(this).hasClass('clicked') ){
alert('Already selected');
return;
}
$(this).addClass('clicked');
});
$('div[id^=id]')
将查找div
ID 以 ( ^
) " id
"
开头的所有元素clicked
)n = 0;
$('#id1').click(function() {
if(n > 1) {
$('#id1').update("Error, you have clicked " + n + " times");
}
n++;
});
尝试使用one()
$("#id1").one("click", function() {
alert("Here after you cant click Div id1. Only once fired");
});
如果要将数据保存在数据库中,可以使用 ajax 代码。
您可以在单击事件上初始化 ajax 代码并在其他页面上执行您的代码,如此代码。
$(".button_id").live("click",function(){
var vid=this.id;
//alert(this.id);
$.ajax({
type : 'POST',
url : 'test.php',
data : 'vid='+vid+'&condition=unlike',
success : function(data) {
}
});
one
是你需要的..
$("#id1").one("click", function() {
alert("This will be displayed only once.");
});