我正在创建一个小型投票机制,通过 AJAX 发送快速数据库时间戳。
一系列带有“投票”类别的按钮是投票的触发器,而下面的文本显示该特定项目有多少“投票”。
从单击事件运行 AJAX 方法后,我删除了“投票”类,以便该项目中不能有多个投票。然而我的问题是,即使删除了该类,触发器仍然可以触发并增加尽可能多的选票。
以下是该元素的 HTML:
<div class="points">
<img class="vote" src="images/up.gif" alt="'.$idea['id'].'">
<p class="vote-'.$idea['id'].'">'.$points.' Points</p>
</div>
这是 jQuery 调用:
$('.vote').click(function(){
var iID = $(this).attr('alt');
var typeString = "id="+iID;
$.ajax({
type: "POST",
url:"vote.php",
data: typeString,
success: function (txt){
$('.vote-'+iID).html('<p>'+txt+' Points</p>');
}
});
$(this).attr('src', 'images/voted.gif');
$(this).removeClass('vote');
});
您将事件处理程序附加到 DOM 元素,并且它保持不变。你可以
a. set .data('triggered', 1)
像这样:
if ( !$(this).data('triggered') ) {
// do code
$(this).data('triggered', 1);
}
b.
if ( $(this).hasClass('vote') ) {
// do code
}
C。使用 .live 而不是 .click,例如$('.foo').live('click', fn)
d.调用代码后手动删除事件处理程序,$(this).unbind('click')
作为最后一行,在删除类位之后
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)