我正在试着让用户不能连续点击两次#共享心跳,这会让动画搞砸。也许你可以说,我正在尝试创建一个活动状态,而不添加和删除类?
为什么这个不起作用?第一段代码是什么不起作用,它没有跟在if语句后面,我是不是做错了什么?
if($('.share-text').not(':animated') && $('.share-text span').is(':visible')) {
// do something
}下面是完整的代码:
$('#shareheart').click(function() {
if ($('.share-text:animated').length == 0 && $('.share-text span').is(':visible')) {
$('.share-text span').animate({'opacity': '0'}, 800, function() {
$("#share-what").fadeOut(400)
$('.share-text').stop(true, false).animate({'width': 'toggle','padding-left': 'toggle','padding-right': 'toggle'}, 800)
$('#short-url').css('background-image', "url('images/drink.png')");
})
} else {
$('.share-text').stop(false, true).animate({'width': 'toggle','padding-left': 'toggle','padding-right': 'toggle'}, 800, function() {
$('.share-text span').animate({'opacity': '1'}, 800)
});
}
});发布于 2010-11-16 18:04:33
或者,您可以将条件组合到单个选择器中:
if($(".share-text:not(:animated) span:visible").length)
{
}如果share-text是一个动画,或者如果跨度是不可见的,则条件将返回0 (一个false值)。
发布于 2010-11-16 17:59:49
$('.share-text').not(':animated')...will为您提供了一个jQuery对象(因此,如果测试为布尔值,则始终为真)。not不测试条件并返回文本结果,它过滤jQuery对象匹配的元素。
您还没有说代码应该做什么,但是您可能想要:
if ($('.share-text:animated').length == 0 && $('.share-text span').is(':visible')) {
// do something
}...if前半部分正在查看是否没有“share-text”类的元素是非动画的。
发布于 2010-11-16 18:01:35
我想你误解了not()的功能。它过滤集合,不测试元素是否符合给定的选择器。你可能想要这样的东西:
!$('.share-text').is(':animated')https://stackoverflow.com/questions/4192882
复制相似问题