jquery - .hide() 有效,但随后显示以前的动画?

标签 jquery

我有一个问题,我的动画工作完美,但是当 .hide(); 时被触发它只是恢复到slideDown();功能。

我对此摸不着头脑,尽管我假设它正在运行动画,因为之前的点击仍然处于事件状态?

$('div.SocialShareJob').on('click', function(){
    $(this).find('p').slideUp(300).fadeOut(500);
    $(this).find('.Icons').slideDown(500).fadeIn(900);
});
$('div.CloseSharing').on('click', function(){
    $(this).parent('div.Icons').hide(); 
});

最佳答案

您需要stop尚未完成的动画,并清除队列:

$('div.CloseSharing').on('click', function(event){
    $(this).parent('div.Icons').stop(true).hide(); 
});

如果 closeSharing div 是另一个 div 的子级,您可能还需要阻止 click 事件传播到父级。为此,请将 event.stopPropagation() 添加到事件处理程序的开头:

$('div.CloseSharing').on('click', function(event){
    event.stopPropagation();
    $(this).parent('div.Icons').stop(true).hide(); 
});

关于jquery - .hide() 有效,但随后显示以前的动画?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13113388/

相关文章:

javascript - 文件名包含%符号导致无法下载

javascript - 如何计算编码字符串的长度?

jquery - 使用 jquery 将 html 表转换为字符串

javascript - 将 CSS3 过渡添加到 jQuery Animate 脚本

javascript - jquery show() 在 IE 7 中移动其他元素

jquery - 修复了滚动时标题最终位于页面中间的问题(三星 Galaxy s3)

javascript - 即使 URL 中存在用于降低页面下方的 #anchor,也会在顶部打开页面

javascript - 如何淡入第一个元素并延迟 2 秒然后淡入下一个元素?

javascript - AJAX 请求,3 个有效,第 4 个未到达 PHP

javascript - 使用 JavaScript 追加和选择多个 div