如果首先点击其他按钮,如何防止点击...
实施例 http://jsfiddle.net/C5AVH/3/
$(function(){
$('.vote_like').one('click',function(){
$('.vote_dislike').removeClass('vote_dislike');
alert('Done!')
});
$('.vote_dislike').one('click',function(){
$('.vote_like').removeClass('vote_like');
alert('Done!');
});
});
<a href="#" class="vote_like">Like</a> -
<a href="#" class="vote_dislike">Dislike</a>
当您点击赞按钮时,我想禁用点击不喜欢按钮,反之......
我尝试删除课程,但似乎无法正常工作......
$('.vote_like').removeClass('vote_like');
答案 0 :(得分:2)
您可以删除点击处理程序
$(function () {
$('.vote_like').one('click.like', function () {
$('.vote_dislike').off('click.like');
console.log('like!')
});
$('.vote_dislike').one('click.like', function () {
$('.vote_like').off('click.like');
console.log('dislike!');
});
});
演示:Fiddle
答案 1 :(得分:1)
因为您已将.one
处理程序附加到每个按钮,所以根据jquery docs,它最多仍会执行一次。要防止单击,必须在单击一个后删除处理程序。
$('.vote_like').one('click',function(){
$('.vote_dislike').off();
alert('Done!')
});
$('.vote_dislike').one('click',function(){
$('.vote_like').off();
alert('Done!');
});
});
<a href="#" class="vote_like">Like</a> -
<a href="#" class="vote_dislike">Dislike</a>
但更好的是,为什么不将one
处理程序附加到两个元素并检查哪个被单击:
$(function(){
$('.vote_like,.vote_dislike').one('click',function(){
if($(this).is('.vote_like')){
//set data for like
}
else{
//set data for dislike
}
//make ajax call
});
答案 2 :(得分:0)
锚点没有办法禁用它们,所以你需要删除锚点或在你的javascript中设置一个布尔值来跟踪它是否被点击。
或者,您可以将它们转换为实际的button
元素,使用disabled
状态。
或者您可以使用jquery将自定义data
属性添加到锚点以跟踪它是否已“禁用”
答案 3 :(得分:0)
可以为两个按钮使用一个处理程序,并为其中的
删除其中的单击处理程序var btns=$('.vote_like, .vote_dislike').on('click',function(e){
e.preventDefault();
var isLikeBtn=$(this).is('.vote_like');
/* remove click handler for both, remove class from other button */
btns.off('click').not(this).removeClass( isLikeBtn ? 'vote_dislike' : 'vote_like');
});
由于在两者上使用off
等同于使用one
答案 4 :(得分:0)
$(function(){
$('.vote_like, .vote_dislike').on('click',function(){
$(this).siblings('.vote_like, .vote_dislike').add($(this)).prop('disabled',true);
if ($(this).hasClass('vote_like')) {
/* Do like things */ alert('like');
}else{
/* Do dislike things */ alert('dislike');
}
});
});