如何改变喜欢按钮
How to change like button?
我是jquery和ajax的新手,我希望得到一些帮助。
如何添加jquery代码:
$('.btn-likes').on('click', function() {
$(this).toggleClass('liked');
});
这个逻辑吗?
function addLikes(id,action) {
$('.demo-table #tutorial-'+id+' li').each(function(index) {
$(this).addClass('selected');
$('#tutorial-'+id+' #rating').val((index+1));
if(index == $('.demo-table #tutorial-'+id+' li').index(obj)) {
return false; }});
$.ajax({
url: "add_likes.php",
data:'id='+id+'&action='+action,
type: "POST",
beforeSend: function(){
$('#tutorial-'+id+' .btn-likes').html("<img src='LoaderIcon.gif' />");},
success: function(data){
var likes = parseInt($('#likes-'+id).val());
switch(action) {
case "like":
$('#tutorial-'+id+' .btn-likes').html('<input type="button" title="Unlike" class="unlike" onClick="addLikes('+id+',''unlike'')" />');
likes = likes+1;break;
case "unlike":
$('#tutorial-'+id+' .btn-likes').html('<input type="button" title="Like" class="like" onClick="addLikes('+id+',''like'')" />')
likes = likes-1;break;}
$('#likes-'+id).val(likes);
if(likes>0) {
$('#tutorial-'+id+' .label-likes').html(likes+" Like(s)");
} else {$('#tutorial-'+id+' .label-likes').html('');}}});
}
我需要它来改变按钮动画风格。谢谢。
toggleClass jquery方法用于在jquery选择器中添加/删除类。首先创建一个需要切换的类,然后使用toggleClass作为jquery选择器。如果需要检查类是否已经被应用,可以使用jquery的hasClass方法。
我添加了一行代码,您应该在其中添加适当的类。具体来说:
if (likes > 0) {
// Do addClass here
$('#tutorial-'+id+' .label-likes').html(likes+" Like(s)").addClass('likes');
} else {
$('#tutorial-'+id+' .label-likes').html('');
}
完整的代码在这里,缩进得很好:
function addLikes(id,action) {
$('.demo-table #tutorial-'+id+' li').each(function(index) {
$(this).addClass('selected');
$('#tutorial-'+id+' #rating').val((index+1));
if (index == $('.demo-table #tutorial-'+id+' li').index(obj)) {
return false;
}
});
$.ajax({
url: "add_likes.php",
data:'id='+id+'&action='+action,
type: "POST",
beforeSend: function() {
$('#tutorial-'+id+' .btn-likes').html("<img src='LoaderIcon.gif' />");
},
success: function(data) {
var likes = parseInt($('#likes-'+id).val());
switch(action) {
case "like":
$('#tutorial-'+id+' .btn-likes').html('<input type="button" title="Unlike" class="unlike" onClick="addLikes('+id+',''unlike'')" />');
likes = likes+1;break;
case "unlike":
$('#tutorial-'+id+' .btn-likes').html('<input type="button" title="Like" class="like" onClick="addLikes('+id+',''like'')" />')
likes = likes-1;break;
}
$('#likes-'+id).val(likes);
if (likes > 0) {
// Do addClass here
$('#tutorial-'+id+' .label-likes').html(likes+" Like(s)").addClass('likes');
} else {
$('#tutorial-'+id+' .label-likes').html('');
}
}
});
}
AngularJS中的动画是另一种使用方式。
有4种类型的动画事件
- 输入
- <
- 添加/删除类/gh>
如果你想用Angular的方式在javascript中实现它,那么你要做的就是钩入这些事件。
在本例中,您想要的目标是像这样的按钮:
(来自文档:https://docs.angularjs.org/api/ngAnimate)
myModule.animation('.slide', [function() {
return {
// make note that other events (like addClass/removeClass)
// have different function input parameters
enter: function(element, doneFn) {
jQuery(element).fadeIn(1000, doneFn);
// remember to call doneFn so that angular
// knows that the animation has concluded
},
move: function(element, doneFn) {
jQuery(element).fadeIn(1000, doneFn);
},
leave: function(element, doneFn) {
jQuery(element).fadeOut(1000, doneFn);
}
}
}]
为了勾入一个事件点击,那么enter
, leave
和move
不会给你带来太多好处;您需要的是在click事件上添加或删除类名。您可以通过多种方式添加类,但这里有一个示例:
<button ng-class="{'my-animation':model.animationOn}" ng-click="model.animationOn=true">My Button Text</button>
但是,您必须在某个时候删除该类。最合适的时间可能是在使用Angular动画API的事件回调中。像这样:
myModule.animation('.my-btn', [function() {
return {
addClass: function(element, className, doneFn) {
if(className == 'my-animation') {
jQuery(element).fadeIn(1000, function() {
doneFn(); // always call this when you're done
element.removeClass('my-btn');
});
}
}
}
}]
还有,为了让Angular知道你在javascript中添加和删除类,你必须使用Angular自带的指令之一,或者使用Angular中的$animate
服务。在你的第一个代码示例中,你使用jQuery添加了一个类,但是Angular并不知道。
相关文章:
- 当再次单击时,我希望颜色消失.(喜欢/讨厌按钮,一切都可以,但如果我点击两次喜欢按钮,我希望颜色消失)
- 以编程方式创建的“喜欢按钮”会泄漏大量内存
- 如何确保我的喜欢按钮仅被用户按下一次
- 使用 API v3.0 为特定视频创建 Youtube“喜欢”按钮
- FB喜欢按钮在ajax调用中不起作用
- 喜欢按钮不't展示了javascript sdk、谷歌分析等代码
- 使用喜欢按钮在Facebook上传输自定义文本
- 将 AJAX 添加到带计数器的轨道 4 喜欢/不喜欢按钮
- 如何知道脸书喜欢按钮的ID
- Facebook页面的Facebook“喜欢”按钮,但带有回调
- 编写可重用的代码以创建递增的“喜欢”按钮
- 让Facebook喜欢按钮(由JS生成)出现
- Facebook如何将“喜欢”按钮连接到您的FB帐户
- AngularJS:字体真棒喜欢按钮未显示在ng-show下
- 当快速点击喜欢按钮时,获得未知的喜欢
- 使用 iframe 文档向我的标记添加 Facebook 喜欢按钮不起作用
- 喜欢按钮由于javascript挂断而不起作用
- 影响其他变量的 Tumblr 喜欢按钮
- 页面不能被Facebook喜欢按钮
- Facebook - 一个主机页面(GWT)的多个喜欢按钮